'MediaWiki\\Logger\\NullSpi' => __DIR__ . '/includes/debug/logger/NullSpi.php',
'MediaWiki\\Logger\\Spi' => __DIR__ . '/includes/debug/logger/Spi.php',
'MediaWiki\\MediaWikiServices' => __DIR__ . '/includes/MediaWikiServices.php',
+ 'MediaWiki\\Services\\CannotReplaceActiveServiceException' => __DIR__ . '/includes/Services/CannotReplaceActiveServiceException.php',
+ 'MediaWiki\\Services\\ContainerDisabledException' => __DIR__ . '/includes/Services/ContainerDisabledException.php',
+ 'MediaWiki\\Services\\DestructibleService' => __DIR__ . '/includes/Services/DestructibleService.php',
+ 'MediaWiki\\Services\\NoSuchServiceException' => __DIR__ . '/includes/Services/NoSuchServiceException.php',
+ 'MediaWiki\\Services\\ServiceAlreadyDefinedException' => __DIR__ . '/includes/Services/ServiceAlreadyDefinedException.php',
'MediaWiki\\Services\\ServiceContainer' => __DIR__ . '/includes/Services/ServiceContainer.php',
+ 'MediaWiki\\Services\\ServiceDisabledException' => __DIR__ . '/includes/Services/ServiceDisabledException.php',
'MediaWiki\\Session\\BotPasswordSessionProvider' => __DIR__ . '/includes/session/BotPasswordSessionProvider.php',
'MediaWiki\\Session\\CookieSessionProvider' => __DIR__ . '/includes/session/CookieSessionProvider.php',
'MediaWiki\\Session\\ImmutableSessionProviderWithCookie' => __DIR__ . '/includes/session/ImmutableSessionProviderWithCookie.php',
$request: $wgRequest
$mediaWiki: The $mediawiki object
-'MediaWikiServices': Override services in the default MediaWikiServices instance.
-Extensions may use this to define, replace, or wrap existing services.
-However, the preferred way to define a new service is the $wgServiceWiringFiles array.
+'MediaWikiServices': Called when a global MediaWikiServices instance is
+initialized. Extensions may use this to define, replace, or wrap services.
+However, the preferred way to define a new service is
+the $wgServiceWiringFiles array.
+$services: MediaWikiServices
+
+'MediaWikiServices::resetLegacyServices': Called when MediaWikiServices resets
+global instances of all well known services that are not yet managed by
+MediaWikiServices directly. Extension may use this hook to reset their own
+global service instances. However, it is preferred for extensions to have their
+services managed by MediaWikiServices directly, by registering them
+via $wgServiceWiringFiles or the 'MediaWikiServices' hook.
$services: MediaWikiServices
'MessageCache::get': When fetching a message. Can be used to override the key
includes/ServiceWiring.php, which defines all default service
implementations, and specifies how they depend on each other ("wiring").
+Note that services get their configuration injected, and changes to global
+configuration variables will not have any effect on services that were already
+instantiated. This would typically be the case for low level services like
+the ConfigFactory or the ObjectCacheManager, which are used during extension
+registration. To address this issue, Setup.php resets the global service
+locator instance by calling MediaWikiServices::resetGlobalInstance() once
+configuration and extension registration is complete.
+
+
When a new service is added to MediaWiki core, an instantiator function
that will create the appropriate default instance for that service must
be added to ServiceWiring.php. This makes the service available through
$this->termReceived = false;
}
} while ( count( $this->children ) );
- pcntl_signal( SIGTERM, SIG_DFL );
+
+ $this->initProcess();
return 'done';
}
protected function prepareEnvironment() {
global $wgMemc;
- // Don't share DB, storage, or memcached connections
- wfGetLBFactory()->destroyInstance();
- FileBackendGroup::destroySingleton();
- LockManagerGroup::destroySingletons();
- JobQueueGroup::destroySingletons();
- ObjectCache::clear();
- RedisConnectionPool::destroySingletons();
- $wgMemc = null;
+ $wgMemc = null; // TODO: change all code that accesses this directly!
+
+ // NOTE: we want to destroy global service instances before forking,
+ // so no external resources such as database connections get copied
+ // to the child processes.
+ \MediaWiki\MediaWikiServices::disableStorageBackend();
}
/**
}
if ( !$pid ) {
- $this->initChild();
+ $this->initProcess();
$this->childNumber = $i;
return 'child';
} else {
return 'parent';
}
- protected function initChild() {
- global $wgMemc, $wgMainCacheType;
- $wgMemc = wfGetCache( $wgMainCacheType );
+ protected function initProcess() {
+ // Reset services, so we don't re-use connections.
+ \MediaWiki\MediaWikiServices::resetChildProcessServices();
+
$this->children = null;
pcntl_signal( SIGTERM, SIG_DFL );
}
* Note 2: use $this->getDB() in maintenance scripts that may be invoked by
* updater to ensure that a proper database is being updated.
*
+ * @todo Replace calls to wfGetDB with calls to LoadBalancer::getConnection()
+ * on an injected instance of LoadBalancer.
+ *
* @return DatabaseBase
*/
function wfGetDB( $db, $groups = [], $wiki = false ) {
/**
* Get a load balancer object.
*
+ * @deprecated since 1.27, use MediaWikiServices::getDBLoadBalancer()
+ * or MediaWikiServices::getDBLoadBalancerFactory() instead.
+ *
* @param string|bool $wiki Wiki ID, or false for the current wiki
* @return LoadBalancer
*/
function wfGetLB( $wiki = false ) {
- return wfGetLBFactory()->getMainLB( $wiki );
+ if ( $wiki === false ) {
+ return \MediaWiki\MediaWikiServices::getInstance()->getDBLoadBalancer();
+ } else {
+ $factory = \MediaWiki\MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
+ return $factory->getMainLB( $wiki );
+ }
}
/**
* Get the load balancer factory object
*
+ * @deprecated since 1.27, use MediaWikiServices::getDBLoadBalancerFactory() instead.
+ *
* @return LBFactory
*/
function wfGetLBFactory() {
- return LBFactory::singleton();
+ return \MediaWiki\MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
}
/**
<?php
namespace MediaWiki;
+use ApiQueryInfo;
+use CentralIdLookup;
+use Config;
use ConfigFactory;
+use DeferredUpdates;
+use FileBackendGroup;
use GlobalVarConfig;
-use Config;
use Hooks;
+use IP;
+use JobQueueAggregator;
+use Language;
use LBFactory;
+use LinkCache;
use LoadBalancer;
+use LockManagerGroup;
+use MagicWord;
+use MediaHandler;
use MediaWiki\Services\ServiceContainer;
+use MediaWiki\Session\SessionManager;
+use MessageCache;
+use MWException;
+use MWNamespace;
+use MWTidy;
+use ObjectCache;
+use RedisConnectionPool;
+use RepoGroup;
+use RequestContext;
+use ResourceLoader;
use SiteLookup;
use SiteStore;
+use SpecialPageFactory;
+use Title;
+use User;
+use WatchedItemStore;
+use Wikimedia\Assert\Assert;
/**
* Service locator for MediaWiki core services.
*/
class MediaWikiServices extends ServiceContainer {
+ /**
+ * @var MediaWikiServices|null
+ */
+ private static $instance = null;
+
/**
* Returns the global default instance of the top level service locator.
*
* @return MediaWikiServices
*/
public static function getInstance() {
- static $instance = null;
-
- if ( $instance === null ) {
+ if ( self::$instance === null ) {
// NOTE: constructing GlobalVarConfig here is not particularly pretty,
// but some information from the global scope has to be injected here,
// even if it's just a file name or database credentials to load
// configuration from.
- $config = new GlobalVarConfig();
- $instance = new self( $config );
+ $bootstrapConfig = new GlobalVarConfig();
+ self::$instance = self::newInstance( $bootstrapConfig );
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Replaces the global MediaWikiServices instance.
+ *
+ * @note This is for use in PHPUnit tests only!
+ *
+ * @throws MWException if called outside of PHPUnit tests.
+ *
+ * @param MediaWikiServices $services The new MediaWikiServices object.
+ *
+ * @return MediaWikiServices The old MediaWikiServices object, so it can be restored later.
+ */
+ public static function forceGlobalInstance( MediaWikiServices $services ) {
+ if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
+ throw new MWException( __METHOD__ . ' must not be used outside unit tests.' );
+ }
+
+ $old = self::getInstance();
+ self::$instance = $services;
- // Load the default wiring from the specified files.
- $wiringFiles = $config->get( 'ServiceWiringFiles' );
- $instance->loadWiringFiles( $wiringFiles );
+ self::resetLegacyServices();
- // Provide a traditional hook point to allow extensions to configure services.
- Hooks::run( 'MediaWikiServices', [ $instance ] );
+ return $old;
+ }
+
+ /**
+ * Creates a new instance of MediaWikiServices and sets it as the global default
+ * instance. getInstance() will return a different MediaWikiServices object
+ * after every call to resetGlobalServiceLocator().
+ *
+ * @warning This should not be used during normal operation. It is intended for use
+ * when the configuration has changed significantly since bootstrap time, e.g.
+ * during the installation process or during testing.
+ *
+ * @warning Calling resetGlobalServiceLocator() may leave the application in an inconsistent
+ * state. Calling this is only safe under the ASSUMPTION that NO REFERENCE to
+ * any of the services managed by MediaWikiServices exist. If any service objects
+ * managed by the old MediaWikiServices instance remain in use, they may INTERFERE
+ * with the operation of the services managed by the new MediaWikiServices.
+ * Operating with a mix of services created by the old and the new
+ * MediaWikiServices instance may lead to INCONSISTENCIES and even DATA LOSS!
+ * Any class implementing LAZY LOADING is especially prone to this problem,
+ * since instances would typically retain a reference to a storage layer service.
+ *
+ * @see forceGlobalInstance()
+ * @see resetGlobalInstance()
+ * @see resetBetweenTest()
+ *
+ * @param Config|null $bootstrapConfig The Config object to be registered as the
+ * 'BootstrapConfig' service. This has to contain at least the information
+ * needed to set up the 'ConfigFactory' service. If not given, the bootstrap
+ * config of the old instance of MediaWikiServices will be re-used. If there
+ * was no previous instance, a new GlobalVarConfig object will be used to
+ * bootstrap the services.
+ *
+ * @throws MWException
+ */
+ public static function resetGlobalInstance( Config $bootstrapConfig = null ) {
+ if ( self::$instance === null ) {
+ // no global instance yet, nothing to reset
+ return;
}
+ if ( $bootstrapConfig === null ) {
+ $bootstrapConfig = self::$instance->getBootstrapConfig();
+ }
+
+ self::$instance->destroy();
+
+ self::$instance = self::newInstance( $bootstrapConfig );
+
+ self::resetLegacyServices();
+ }
+
+ /**
+ * Creates a new MediaWikiServices instance and initializes it according to the
+ * given $bootstrapConfig. In particular, all wiring files defined in the
+ * ServiceWiringFiles setting are loaded, and the MediaWikiServices hook is called.
+ *
+ * @param Config|null $bootstrapConfig The Config object to be registered as the
+ * 'BootstrapConfig' service. This has to contain at least the information
+ * needed to set up the 'ConfigFactory' service. If not provided, any call
+ * to getBootstrapConfig(), getConfigFactory, or getMainConfig will fail.
+ * A MediaWikiServices instance without access to configuration is called
+ * "primordial".
+ *
+ * @return MediaWikiServices
+ * @throws MWException
+ */
+ private static function newInstance( Config $bootstrapConfig ) {
+ $instance = new self( $bootstrapConfig );
+
+ // Load the default wiring from the specified files.
+ $wiringFiles = $bootstrapConfig->get( 'ServiceWiringFiles' );
+ $instance->loadWiringFiles( $wiringFiles );
+
+ // Provide a traditional hook point to allow extensions to configure services.
+ Hooks::run( 'MediaWikiServices', [ $instance ] );
+
return $instance;
}
+ /**
+ * Resets global instances of services that have not yet been ported to using
+ * MediaWikiServices to manage their default instance.
+ *
+ * @note eventually, all global service instances are to be managed by MediaWikiServices.
+ * To emulate the effect of resetting the global service locator, we reset the individual
+ * static singletons for now.
+ *
+ * @note As long as we don't know the interdependencies between the services, the only way
+ * to reset services consistently is to reset all services at once. This should be ok since
+ * there should rarely be a need to reset all processes.
+ */
+ private static function resetLegacyServices() {
+ global $wgContLang, $wgUser, $wgMemc, $wgRequest;
+
+ $services = self::getInstance();
+ $config = $services->getMainConfig();
+
+ // NOTE: all the services instance that get reset below should be migrated
+ // to be managed by MediaWikiServices. Eventually, this method can then be
+ // removed.
+
+ User::resetIdByNameCache();
+ LinkCache::singleton()->clear();
+ Title::clearCaches();
+
+ MWTidy::destroySingleton();
+ MagicWord::clearCache();
+ SpecialPageFactory::resetList();
+ JobQueueAggregator::destroySingleton();
+ DeferredUpdates::clearPendingUpdates();
+ CentralIdLookup::resetCache();
+ MediaHandler::resetCache();
+ IP::clearCaches();
+ ResourceLoader::clearCache();
+
+ ApiQueryInfo::resetTokenCache();
+
+ RepoGroup::destroySingleton();
+
+ MessageCache::destroyInstance();
+
+ MWNamespace::getCanonicalNamespaces( true ); # reset namespace cache
+ Language::$mLangObjCache = [];
+ Language::getLocalisationCache()->unloadAll();
+
+ ObjectCache::clear();
+ RedisConnectionPool::destroySingletons();
+ FileBackendGroup::destroySingleton();
+ LockManagerGroup::destroySingletons();
+
+ RequestContext::resetMain();
+ $wgRequest = RequestContext::getMain()->getRequest(); // BackCompat
+
+ $wgContLang = Language::factory( $config->get( 'LanguageCode' ) );
+ $wgContLang->resetNamespaces(); # reset namespace cache
+
+ $wgMemc = ObjectCache::getLocalClusterInstance();
+ $wgUser = RequestContext::getMain()->getUser();
+
+ SessionManager::resetCache();
+
+ // Provide a hook point for extensions that need to reset global service instances.
+ Hooks::run( 'MediaWikiServices::resetLegacyServices', [ $services ] );
+ }
+
+ /**
+ * Disables all storage layer services. After calling this, any attempt to access the
+ * storage layer will result in an error. Use resetGlobalInstance() to restore normal
+ * operation.
+ *
+ * @warning This is intended for extreme situations only and should never be used
+ * while serving normal web requests. Legitimate use cases for this method include
+ * the installation process. Test fixtures may also use this, if the fixture relies
+ * on globalState.
+ *
+ * @see resetGlobalInstance()
+ * @see resetChildProcessServices()
+ */
+ public static function disableStorageBackend() {
+ // TODO: also disable some Caches, JobQueues, etc
+ $destroy = [ 'DBLoadBalancer', 'DBLoadBalancerFactory' ];
+ $services = self::getInstance();
+
+ foreach ( $destroy as $name ) {
+ $services->disableService( $name );
+ }
+ }
+
+ /**
+ * Resets any services that may have become stale after a child process
+ * returns from after pcntl_fork(). It's also safe, but generally unnecessary,
+ * to call this method from the parent process.
+ *
+ * @note This is intended for use in the context of process forking only!
+ *
+ * @see resetGlobalInstance()
+ * @see disableStorageBackend()
+ */
+ public static function resetChildProcessServices() {
+ // NOTE: for now, just reset everything. Since we don't know the interdependencies
+ // between services, we can't do this more selectively at this time.
+ self::resetGlobalInstance();
+
+ // Child, reseed because there is no bug in PHP:
+ // http://bugs.php.net/bug.php?id=42465
+ mt_srand( getmypid() );
+ }
+
+ /**
+ * Resets the given service for testing purposes.
+ *
+ * @warning This is generally unsafe! Other services may still retain references
+ * to the stale service instance, leading to failures and inconsistencies. Subclasses
+ * may use this method to reset specific services under specific instances, but
+ * it should not be exposed to application logic.
+ *
+ * @note With proper dependency injection used throughout the codebase, this method
+ * should not be needed. It is provided to allow tests that pollute global service
+ * instances to clean up.
+ *
+ * @param string $name
+ * @param string $destroy Whether the service instance should be destroyed if it exists.
+ * When set to false, any existing service instance will effectively be detached
+ * from the container.
+ *
+ * @throws MWException if called outside of PHPUnit tests.
+ */
+ public function resetServiceForTesting( $name, $destroy = true ) {
+ if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
+ throw new MWException( 'resetServiceForTesting() must not be used outside unit tests.' );
+ }
+
+ $this->resetService( $name, $destroy );
+ }
+
+ /**
+ * Convenience method that throws an exception if called outside the service bootstrapping
+ * phase as indicated by the MW_SERVICE_BOOTSTRAP_COMPLETE constant - that is, after
+ * Setup.php has called resetGlobalInstance(). Additionally, no exception is thrown if
+ * this method is called during unit testing (as indicated by MW_PHPUNIT_TEST) or
+ * during installation (as indicated by MEDIAWIKI_INSTALL).
+ *
+ * This method is intended to be used to safeguard against accidentally resetting
+ * global service instances that are not yet managed by MediaWikiServices. It is
+ * defined here in the MediaWikiServices services class to keep the knowledge about
+ * how the bootstrapping phase is managed central.
+ *
+ * @param string $method the name of the caller method, as given by __METHOD__.
+ *
+ * @throws MWException if called outside bootstrap mode.
+ *
+ * @see resetGlobalInstance()
+ * @see forceGlobalInstance()
+ * @see disableStorageBackend()
+ */
+ public static function failUnlessBootstrapping( $method ) {
+ if ( !defined( 'MW_PHPUNIT_TEST' )
+ && !defined( 'MEDIAWIKI_INSTALL' )
+ && defined( 'MW_SERVICE_BOOTSTRAP_COMPLETE' )
+ ) {
+ throw new MWException( $method . ' may only be called during bootstrapping unit tests!' );
+ }
+
+ ObjectCache::clear();
+ }
+
/**
* @param Config $config The Config object to be registered as the 'BootstrapConfig' service.
* This has to contain at least the information needed to set up the 'ConfigFactory'
public function __construct( Config $config ) {
parent::__construct();
- // register the given Config object as the bootstrap config service.
+ // Register the given Config object as the bootstrap config service.
$this->defineService( 'BootstrapConfig', function() use ( $config ) {
return $config;
} );
}
+ // CONVENIENCE GETTERS ////////////////////////////////////////////////////
+
/**
* Returns the Config object containing the bootstrap configuration.
* Bootstrap configuration would typically include database credentials
return $this->getService( 'SiteStore' );
}
+ /**
+ * @return LBFactory
+ */
+ public function getDBLoadBalancerFactory() {
+ return $this->getService( 'DBLoadBalancerFactory' );
+ }
+
+ /**
+ * @return LoadBalancer The main DB load balancer for the local wiki.
+ */
+ public function getDBLoadBalancer() {
+ return $this->getService( 'DBLoadBalancer' );
+ }
+
+ /**
+ * @return WatchedItemStore
+ */
+ public function getWatchedItemStore() {
+ return $this->getService( 'WatchedItemStore' );
+ }
+
///////////////////////////////////////////////////////////////////////////
// NOTE: When adding a service getter here, don't forget to add a test
// case for it in MediaWikiServicesTest::provideGetters() and in
use MediaWiki\MediaWikiServices;
return [
+ 'DBLoadBalancerFactory' => function( MediaWikiServices $services ) {
+ // NOTE: Defining the LBFactory class via LBFactoryConf is supported for
+ // backwards compatibility. The preferred way would be to register a
+ // callback for DBLoadBalancerFactory that constructs the desired LBFactory
+ // directly.
+ $config = $services->getMainConfig()->get( 'LBFactoryConf' );
+
+ $class = LBFactory::getLBFactoryClass( $config );
+ if ( !isset( $config['readOnlyReason'] ) ) {
+ // TODO: replace the global wfConfiguredReadOnlyReason() with a service.
+ $config['readOnlyReason'] = wfConfiguredReadOnlyReason();
+ }
+
+ return new $class( $config );
+ },
+
+ 'DBLoadBalancer' => function( MediaWikiServices $services ) {
+ // just return the default LB from the DBLoadBalancerFactory service
+ return $services->getDBLoadBalancerFactory()->getMainLB();
+ },
+
'SiteStore' => function( MediaWikiServices $services ) {
- $loadBalancer = wfGetLB(); // TODO: use LB from MediaWikiServices
- $rawSiteStore = new DBSiteStore( $loadBalancer );
+ $rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
// TODO: replace wfGetCache with a CacheFactory service.
// TODO: replace wfIsHHVM with a capabilities service.
return $services->getConfigFactory()->makeConfig( 'main' );
},
+ 'WatchedItemStore' => function( MediaWikiServices $services ) {
+ $store = new WatchedItemStore(
+ $services->getDBLoadBalancer(),
+ new HashBagOStuff( [ 'maxKeys' => 100 ] )
+ );
+ $store->setStatsdDataFactory( RequestContext::getMain()->getStats() );
+ return $store;
+ }
+
///////////////////////////////////////////////////////////////////////////
// NOTE: When adding a service here, don't forget to add a getter function
// in the MediaWikiServices class. The convenience getter should just call
--- /dev/null
+<?php
+namespace MediaWiki\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when trying to replace an already active service.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.27
+ */
+
+/**
+ * Exception thrown when trying to replace an already active service.
+ */
+class CannotReplaceActiveServiceException extends RuntimeException {
+
+ /**
+ * @param string $serviceName
+ * @param Exception|null $previous
+ */
+ public function __construct( $serviceName, Exception $previous = null ) {
+ parent::__construct( "Cannot replace an active service: $serviceName", 0, $previous );
+ }
+
+}
--- /dev/null
+<?php
+namespace MediaWiki\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when trying to access a service on a disabled container or factory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.27
+ */
+
+/**
+ * Exception thrown when trying to access a service on a disabled container or factory.
+ */
+class ContainerDisabledException extends RuntimeException {
+
+ /**
+ * @param Exception|null $previous
+ */
+ public function __construct( Exception $previous = null ) {
+ parent::__construct( 'Container disabled!', 0, $previous );
+ }
+
+}
--- /dev/null
+<?php
+namespace MediaWiki\Services;
+
+/**
+ * Interface for destructible services.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.27
+ */
+
+/**
+ * DestructibleService defines a standard interface for shutting down a service instance.
+ * The intended use is for a service container to be able to shut down services that should
+ * no longer be used, and allow such services to release any system resources.
+ *
+ * @note There is no expectation that services will be destroyed when the process (or web request)
+ * terminates.
+ */
+interface DestructibleService {
+
+ /**
+ * Notifies the service object that it should expect to no longer be used, and should release
+ * any system resources it may own. The behavior of all service methods becomes undefined after
+ * destroy() has been called. It is recommended that implementing classes should throw an
+ * exception when service methods are accessed after destroy() has been called.
+ */
+ public function destroy();
+
+}
--- /dev/null
+<?php
+namespace MediaWiki\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when the requested service is not known.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.27
+ */
+
+/**
+ * Exception thrown when the requested service is not known.
+ */
+class NoSuchServiceException extends RuntimeException {
+
+ /**
+ * @param string $serviceName
+ * @param Exception|null $previous
+ */
+ public function __construct( $serviceName, Exception $previous = null ) {
+ parent::__construct( "No such service: $serviceName", 0, $previous );
+ }
+
+}
--- /dev/null
+<?php
+namespace MediaWiki\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when a service was already defined, but the
+ * caller expected it to not exist.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.27
+ */
+
+/**
+ * Exception thrown when a service was already defined, but the
+ * caller expected it to not exist.
+ */
+class ServiceAlreadyDefinedException extends RuntimeException {
+
+ /**
+ * @param string $serviceName
+ * @param Exception|null $previous
+ */
+ public function __construct( $serviceName, Exception $previous = null ) {
+ parent::__construct( "Service already defined: $serviceName", 0, $previous );
+ }
+
+}
* @see docs/injection.txt for an overview of using dependency injection in the
* MediaWiki code base.
*/
-class ServiceContainer {
+class ServiceContainer implements DestructibleService {
/**
* @var object[]
*/
private $extraInstantiationParams;
+ /**
+ * @var boolean
+ */
+ private $destroyed = false;
+
/**
* @param array $extraInstantiationParams Any additional parameters to be passed to the
* instantiator function when creating a service. This is typically used to provide
$this->extraInstantiationParams = $extraInstantiationParams;
}
+ /**
+ * Destroys all contained service instances that implement the DestructibleService
+ * interface. This will render all services obtained from this MediaWikiServices
+ * instance unusable. In particular, this will disable access to the storage backend
+ * via any of these services. Any future call to getService() will throw an exception.
+ *
+ * @see resetGlobalInstance()
+ */
+ public function destroy() {
+ foreach ( $this->getServiceNames() as $name ) {
+ $service = $this->peekService( $name );
+ if ( $service !== null && $service instanceof DestructibleService ) {
+ $service->destroy();
+ }
+ }
+
+ $this->destroyed = true;
+ }
+
/**
* @param array $wiringFiles A list of PHP files to load wiring information from.
* Each file is loaded using PHP's include mechanism. Each file is expected to
return isset( $this->serviceInstantiators[$name] );
}
+ /**
+ * Returns the service instance for $name only if that service has already been instantiated.
+ * This is intended for situations where services get destroyed/cleaned up, so we can
+ * avoid creating a service just to destroy it again.
+ *
+ * @note Application logic should use getService() instead.
+ *
+ * @see getService().
+ *
+ * @param string $name
+ *
+ * @return object|null The service instance, or null if the service has not yet been instantiated.
+ * @throws RuntimeException if $name does not refer to a known service.
+ */
+ public function peekService( $name ) {
+ if ( !$this->hasService( $name ) ) {
+ throw new NoSuchServiceException( $name );
+ }
+
+ return isset( $this->services[$name] ) ? $this->services[$name] : null;
+ }
+
/**
* @return string[]
*/
Assert::parameterType( 'string', $name, '$name' );
if ( $this->hasService( $name ) ) {
- throw new RuntimeException( 'Service already defined: ' . $name );
+ throw new ServiceAlreadyDefinedException( $name );
}
$this->serviceInstantiators[$name] = $instantiator;
Assert::parameterType( 'string', $name, '$name' );
if ( !$this->hasService( $name ) ) {
- throw new RuntimeException( 'Service not defined: ' . $name );
+ throw new NoSuchServiceException( $name );
}
if ( isset( $this->services[$name] ) ) {
- throw new RuntimeException( 'Cannot redefine a service that is already in use: ' . $name );
+ throw new CannotReplaceActiveServiceException( $name );
}
$this->serviceInstantiators[$name] = $instantiator;
}
+ /**
+ * Disables a service.
+ *
+ * @note Attempts to call getService() for a disabled service will result
+ * in a DisabledServiceException. Calling peekService for a disabled service will
+ * return null. Disabled services are listed by getServiceNames(). A disabled service
+ * can be enabled again using redefineService().
+ *
+ * @note If the service was already active (that is, instantiated) when getting disabled,
+ * and the service instance implements DestructibleService, destroy() is called on the
+ * service instance.
+ *
+ * @see redefineService()
+ * @see resetService()
+ *
+ * @param string $name The name of the service to disable.
+ *
+ * @throws RuntimeException if $name is not a known service.
+ */
+ public function disableService( $name ) {
+ $this->resetService( $name );
+
+ $this->redefineService( $name, function() use ( $name ) {
+ throw new ServiceDisabledException( $name );
+ } );
+ }
+
+ /**
+ * Resets a service by dropping the service instance.
+ * If the service instances implements DestructibleService, destroy()
+ * is called on the service instance.
+ *
+ * @warning This is generally unsafe! Other services may still retain references
+ * to the stale service instance, leading to failures and inconsistencies. Subclasses
+ * may use this method to reset specific services under specific instances, but
+ * it should not be exposed to application logic.
+ *
+ * @note This is declared final so subclasses can not interfere with the expectations
+ * disableService() has when calling resetService().
+ *
+ * @see redefineService()
+ * @see disableService().
+ *
+ * @param string $name The name of the service to reset.
+ * @param bool $destroy Whether the service instance should be destroyed if it exists.
+ * When set to false, any existing service instance will effectively be detached
+ * from the container.
+ *
+ * @throws RuntimeException if $name is not a known service.
+ */
+ final protected function resetService( $name, $destroy = true ) {
+ Assert::parameterType( 'string', $name, '$name' );
+
+ $instance = $this->peekService( $name );
+
+ if ( $destroy && $instance instanceof DestructibleService ) {
+ $instance->destroy();
+ }
+
+ unset( $this->services[$name] );
+ }
+
/**
* Returns a service object of the kind associated with $name.
* Services instances are instantiated lazily, on demand.
*
* @param string $name The service name
*
- * @throws InvalidArgumentException if $name is not a known service.
+ * @throws NoSuchServiceException if $name is not a known service.
+ * @throws ServiceDisabledException if this container has already been destroyed.
+ *
* @return object The service instance
*/
public function getService( $name ) {
+ if ( $this->destroyed ) {
+ throw new ContainerDisabledException();
+ }
+
if ( !isset( $this->services[$name] ) ) {
$this->services[$name] = $this->createService( $name );
}
array_merge( [ $this ], $this->extraInstantiationParams )
);
} else {
- throw new InvalidArgumentException( 'Unknown service: ' . $name );
+ throw new NoSuchServiceException( $name );
}
return $service;
--- /dev/null
+<?php
+namespace MediaWiki\Services;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Exception thrown when trying to access a disabled service.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @since 1.27
+ */
+
+/**
+ * Exception thrown when trying to access a disabled service.
+ */
+class ServiceDisabledException extends RuntimeException {
+
+ /**
+ * @param string $serviceName
+ * @param Exception|null $previous
+ */
+ public function __construct( $serviceName, Exception $previous = null ) {
+ parent::__construct( "Service disabled: $serviceName", 0, $previous );
+ }
+
+}
*
* @file
*/
+use MediaWiki\MediaWikiServices;
/**
* This file is not a valid entry point, perform no further processing unless
require_once "$IP/includes/AutoLoader.php";
}
+// Reset the global service locator, so any services that have already been created will be
+// re-created while taking into account any custom settings and extensions.
+MediaWikiServices::resetGlobalInstance( new GlobalVarConfig() );
+
+// Define a constant that indicates that the bootstrapping of the service locator
+// is complete.
+define( 'MW_SERVICE_BOOTSTRAP_COMPLETE', 1 );
+
// Install a header callback to prevent caching of responses with cookies (T127993)
if ( !$wgCommandLineMode ) {
header_register_callback( function () {
Profiler::instance()->scopedProfileOut( $ps_misc );
$ps_memcached = Profiler::instance()->scopedProfileIn( $fname . '-memcached' );
-$wgMemc = wfGetMainCache();
+$wgMemc = ObjectCache::getLocalClusterInstance();
$messageMemc = wfGetMessageCacheStorage();
$parserMemc = wfGetParserCacheStorage();
<?php
use Liuggio\StatsdClient\Factory\StatsdDataFactoryInterface;
+use MediaWiki\MediaWikiServices;
use Wikimedia\Assert\Assert;
/**
*/
private $stats;
- /**
- * @var self|null
- */
- private static $instance;
-
/**
* @param LoadBalancer $loadBalancer
* @param HashBagOStuff $cache
}
/**
- * Overrides the default instance of this class
- * This is intended for use while testing and will fail if MW_PHPUNIT_TEST is not defined.
- *
- * If this method is used it MUST also be called with null after a test to ensure a new
- * default instance is created next time getDefaultInstance is called.
- *
- * @param WatchedItemStore|null $store
- *
- * @return ScopedCallback to reset the overridden value
- * @throws MWException
- */
- public static function overrideDefaultInstance( WatchedItemStore $store = null ) {
- if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
- throw new MWException(
- 'Cannot override ' . __CLASS__ . 'default instance in operation.'
- );
- }
-
- $previousValue = self::$instance;
- self::$instance = $store;
- return new ScopedCallback( function() use ( $previousValue ) {
- self::$instance = $previousValue;
- } );
- }
-
- /**
+ * @deprecated use MediaWikiServices::getInstance()->getWatchedItemStore()
* @return self
*/
public static function getDefaultInstance() {
- if ( !self::$instance ) {
- self::$instance = new self(
- wfGetLB(),
- new HashBagOStuff( [ 'maxKeys' => 100 ] )
- );
- self::$instance->setStatsdDataFactory( RequestContext::getMain()->getStats() );
- }
- return self::$instance;
+ return MediaWikiServices::getInstance()->getWatchedItemStore();
}
private function getCacheKey( User $user, LinkTarget $target ) {
"apihelp-parse-example-summary": "Analizar un resumen.",
"apihelp-patrol-description": "Verificar una página o revisión.",
"apihelp-patrol-param-rcid": "Identificador de cambios recientes que verificar.",
- "apihelp-patrol-param-revid": "ID de revisión a patrullar.",
+ "apihelp-patrol-param-revid": "Identificador de revisión que patrullar.",
"apihelp-patrol-example-rcid": "Verificar un cambio reciente.",
"apihelp-patrol-example-revid": "Verificar una revisión.",
"apihelp-protect-description": "Cambiar el nivel de protección de una página.",
"apihelp-help-example-recursive": "All Hëllef op enger Säit",
"apihelp-imagerotate-description": "Eent oder méi Biller dréinen.",
"apihelp-imagerotate-example-generator": "All Biller an der <kbd>Category:Flip]]<kbd> ëm <kbd>180<kbd> Grad dréinen.",
- "apihelp-import-param-summary": "Resumé importéieren.",
+ "apihelp-import-param-summary": "Resumé vum importéiere vum Logbuch.",
"apihelp-import-param-xml": "Eropgeluedenen XML-Fichier.",
"apihelp-import-param-rootpage": "Als Ënnersäit vun dëser Säit importéieren. Kann net zesumme mam <var>$1namespace</var> benotzt ginn.",
"apihelp-login-param-name": "Benotzernumm.",
}
/**
- * Register a new config factory function
- * Will override if it's already registered
+ * @return string[]
+ */
+ public function getConfigNames() {
+ return array_keys( $this->factoryFunctions );
+ }
+
+ /**
+ * Register a new config factory function.
+ * Will override if it's already registered.
+ * Use "*" for $name to provide a fallback config for all unknown names.
* @param string $name
- * @param callable $callback That takes this ConfigFactory as an argument
+ * @param callable|Config $callback A factory callabck that takes this ConfigFactory
+ * as an argument and returns a Config instance, or an existing Config instance.
* @throws InvalidArgumentException If an invalid callback is provided
*/
public function register( $name, $callback ) {
+ if ( $callback instanceof Config ) {
+ $instance = $callback;
+
+ // Register a callback anyway, for consistency. Note that getConfigNames()
+ // relies on $factoryFunctions to have all config names.
+ $callback = function() use ( $instance ) {
+ return $instance;
+ };
+ } else {
+ $instance = null;
+ }
+
if ( !is_callable( $callback ) ) {
throw new InvalidArgumentException( 'Invalid callback provided' );
}
+
+ $this->configs[$name] = $instance;
$this->factoryFunctions[$name] = $callback;
}
*/
public function makeConfig( $name ) {
if ( !isset( $this->configs[$name] ) ) {
- if ( !isset( $this->factoryFunctions[$name] ) ) {
+ $key = $name;
+ if ( !isset( $this->factoryFunctions[$key] ) ) {
+ $key = '*';
+ }
+ if ( !isset( $this->factoryFunctions[$key] ) ) {
throw new ConfigException( "No registered builder available for $name." );
}
- $conf = call_user_func( $this->factoryFunctions[$name], $this );
+ $conf = call_user_func( $this->factoryFunctions[$key], $this );
if ( $conf instanceof Config ) {
$this->configs[$name] = $conf;
} else {
return $this->configs[$name];
}
+
}
*/
use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
/**
* Group all the pieces relevant to the context of a request into one instance
* Resets singleton returned by getMain(). Should be called only from unit tests.
*/
public static function resetMain() {
- if ( !( defined( 'MW_PHPUNIT_TEST' ) || defined( 'MW_PARSER_TEST' ) ) ) {
- throw new MWException( __METHOD__ . '() should be called only from unit tests!' );
- }
+ // TODO: manage service instances in MediaWikiServices
+ MediaWikiServices::failUnlessBootstrapping( __METHOD__ );
self::$instance = null;
}
* @ingroup Database
*/
+use MediaWiki\MediaWikiServices;
+use MediaWiki\Services\DestructibleService;
use Psr\Log\LoggerInterface;
use MediaWiki\Logger\LoggerFactory;
* An interface for generating database load balancers
* @ingroup Database
*/
-abstract class LBFactory {
+abstract class LBFactory implements DestructibleService {
+
/** @var ChronologyProtector */
protected $chronProt;
/** @var LoggerInterface */
protected $logger;
- /** @var LBFactory */
- private static $instance;
-
/** @var string|bool Reason all LBs are read-only or false if not */
protected $readOnlyReason = false;
$this->logger = LoggerFactory::getInstance( 'DBTransaction' );
}
+ /**
+ * Disables all load balancers. All connections are closed, and any attempt to
+ * open a new connection will result in a DBAccessError.
+ * @see LoadBalancer::disable()
+ */
+ public function destroy() {
+ $this->shutdown();
+ $this->forEachLBCallMethod( 'disable' );
+ }
+
/**
* Disables all access to the load balancer, will cause all database access
* to throw a DBAccessError
*/
public static function disableBackend() {
- global $wgLBFactoryConf;
- self::$instance = new LBFactoryFake( $wgLBFactoryConf );
+ MediaWikiServices::disableStorageBackend();
}
/**
* Get an LBFactory instance
*
+ * @deprecated since 1.27, use MediaWikiServices::getDBLoadBalancerFactory() instead.
+ *
* @return LBFactory
*/
public static function singleton() {
- global $wgLBFactoryConf;
-
- if ( is_null( self::$instance ) ) {
- $class = self::getLBFactoryClass( $wgLBFactoryConf );
- $config = $wgLBFactoryConf;
- if ( !isset( $config['readOnlyReason'] ) ) {
- $config['readOnlyReason'] = wfConfiguredReadOnlyReason();
- }
- self::$instance = new $class( $config );
- }
-
- return self::$instance;
+ return MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
}
/**
* Returns the LBFactory class to use and the load balancer configuration.
*
+ * @todo instead of this, use a ServiceContainer for managing the different implementations.
+ *
* @param array $config (e.g. $wgLBFactoryConf)
* @return string Class name
*/
return $class;
}
- /**
- * Shut down, close connections and destroy the cached instance.
- */
- public static function destroyInstance() {
- if ( self::$instance ) {
- self::$instance->shutdown();
- self::$instance->forEachLBCallMethod( 'closeAll' );
- self::$instance = null;
- }
- }
-
- /**
- * Set the instance to be the given object
- *
- * @param LBFactory $instance
- */
- public static function setInstance( $instance ) {
- self::destroyInstance();
- self::$instance = $instance;
- }
-
/**
* Create a new load balancer object. The resulting object will be untracked,
* not chronology-protected, and the caller is responsible for cleaning it up.
*/
class DBAccessError extends MWException {
public function __construct() {
- parent::__construct( "Mediawiki tried to access the database via wfGetDB(). " .
- "This is not allowed." );
+ parent::__construct( 'The storage backend is disabled!' );
}
}
/** @var integer Max time to wait for a slave to catch up (e.g. ChronologyProtector) */
const POS_WAIT_TIMEOUT = 10;
+ /**
+ * @var boolean
+ */
+ private $disabled = false;
+
/**
* @param array $params Array with keys:
* - servers : Required. Array of server info structures.
* On error, returns false, and the connection which caused the
* error will be available via $this->mErrorConnection.
*
+ * @note If disable() was called on this LoadBalancer, this method will throw a DBAccessError.
+ *
* @param int $i Server index
* @param string|bool $wiki Wiki ID, or false for the current wiki
* @return DatabaseBase|bool Returns false on errors
* On error, returns false, and the connection which caused the
* error will be available via $this->mErrorConnection.
*
+ * @note If disable() was called on this LoadBalancer, this method will throw a DBAccessError.
+ *
* @param int $i Server index
* @param string $wiki Wiki ID to open
* @return DatabaseBase
* @return DatabaseBase
*/
protected function reallyOpenConnection( $server, $dbNameOverride = false ) {
+ if ( $this->disabled ) {
+ throw new DBAccessError();
+ }
+
if ( !is_array( $server ) ) {
throw new MWException( 'You must update your load-balancing configuration. ' .
'See DefaultSettings.php entry for $wgDBservers.' );
return false;
}
+ /**
+ * Disable this load balancer. All connections are closed, and any attempt to
+ * open a new connection will result in a DBAccessError.
+ *
+ * @since 1.27
+ */
+ public function disable() {
+ $this->closeAll();
+ $this->disabled = true;
+ }
+
/**
* Close all open connections
*/
if ( !$status->isOK() ) {
throw new MWException( __METHOD__ . ': unexpected DB connection error' );
}
- LBFactory::setInstance( new LBFactorySingle( [
- 'connection' => $status->value ] ) );
+
+ \MediaWiki\MediaWikiServices::resetGlobalInstance();
+ $services = \MediaWiki\MediaWikiServices::getInstance();
+
+ $connection = $status->value;
+ $services->redefineService( 'DBLoadBalancerFactory', function() use ( $connection ) {
+ return new LBFactorySingle( [
+ 'connection' => $connection ] );
+ } );
+
}
/**
*/
abstract public function showStatusMessage( Status $status );
+ /**
+ * Constructs a Config object that contains configuration settings that should be
+ * overwritten for the installation process.
+ *
+ * @since 1.27
+ *
+ * @param Config $baseConfig
+ *
+ * @return Config The config to use during installation.
+ */
+ public static function getInstallerConfig( Config $baseConfig ) {
+ $configOverrides = new HashConfig();
+
+ // disable (problematic) object cache types explicitly, preserving all other (working) ones
+ // bug T113843
+ $emptyCache = [ 'class' => 'EmptyBagOStuff' ];
+
+ $objectCaches = [
+ CACHE_NONE => $emptyCache,
+ CACHE_DB => $emptyCache,
+ CACHE_ANYTHING => $emptyCache,
+ CACHE_MEMCACHED => $emptyCache,
+ ] + $baseConfig->get( 'ObjectCaches' );
+
+ $configOverrides->set( 'ObjectCaches', $objectCaches );
+
+ // Load the installer's i18n.
+ $messageDirs = $baseConfig->get( 'MessagesDirs' );
+ $messageDirs['MediawikiInstaller'] = __DIR__ . '/i18n';
+
+ $configOverrides->set( 'MessagesDirs', $messageDirs );
+
+ return new MultiConfig( [ $configOverrides, $baseConfig ] );
+ }
+
/**
* Constructor, always call this from child classes.
*/
public function __construct() {
- global $wgMessagesDirs, $wgUser;
+ global $wgMemc, $wgUser;
+
+ $defaultConfig = new GlobalVarConfig(); // all the stuff from DefaultSettings.php
+ $installerConfig = self::getInstallerConfig( $defaultConfig );
+
+ // Reset all services and inject config overrides
+ MediaWiki\MediaWikiServices::resetGlobalInstance( $installerConfig );
// Don't attempt to load user language options (T126177)
// This will be overridden in the web installer with the user-specified language
RequestContext::getMain()->setLanguage( 'en' );
// Disable the i18n cache
+ // TODO: manage LocalisationCache singleton in MediaWikiServices
Language::getLocalisationCache()->disableBackend();
- // Disable LoadBalancer and wfGetDB etc.
- LBFactory::disableBackend();
+
+ // Disable all global services, since we don't have any configuration yet!
+ MediaWiki\MediaWikiServices::disableStorageBackend();
// Disable object cache (otherwise CACHE_ANYTHING will try CACHE_DB and
// SqlBagOStuff will then throw since we just disabled wfGetDB)
- $GLOBALS['wgMemc'] = new EmptyBagOStuff;
- ObjectCache::clear();
- $emptyCache = [ 'class' => 'EmptyBagOStuff' ];
- // disable (problematic) object cache types explicitly, preserving all other (working) ones
- // bug T113843
- $GLOBALS['wgObjectCaches'] = [
- CACHE_NONE => $emptyCache,
- CACHE_DB => $emptyCache,
- CACHE_ANYTHING => $emptyCache,
- CACHE_MEMCACHED => $emptyCache,
- ] + $GLOBALS['wgObjectCaches'];
-
- // Load the installer's i18n.
- $wgMessagesDirs['MediawikiInstaller'] = __DIR__ . '/i18n';
+ $wgMemc = ObjectCache::getInstance( CACHE_NONE );
// Having a user with id = 0 safeguards us from DB access via User::loadOptions().
$wgUser = User::newFromId( 0 );
"config-unicode-update-warning": "'''אזהרה''': הגרסה המותקנת של מעטפת נרמול יוניקוד משתמשת בגרסה ישנה של הספרייה של [http://site.icu-project.org/ פרויקט ICU].\nכדאי [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations לעדכן] אם הטיפול ביוניקוד חשוב לך.",
"config-no-db": "לא נמצא דרייבר מסד נתונים מתאים. יש להתקין דרייבר מסד נתונים ל־PHP.\n{{PLURAL:$2|נתמך הסוג הבא של מסד נתונים|נתמכים הסוגים הבאים של מסדי נתונים}}: $1.\n\nאם קִמפלת את PHP בעצמך, יש להגדיר אותו מחדש ולהפעיל את לקוח מסד נתונים, למשל באמצעות <code dir=\"ltr\">./configure --with-mysqli</code>.\nאם התקנת את PHP מחבילה של דביאן או של אובונטו, יש להתקין, למשל, גם את המודול <code dir=\"ltr\">php5-mysql</code>.",
"config-outdated-sqlite": "'''אזהרה''': במערכת מתוקן SQLite $1. גרסה זו לא נתמכת ולשימוש ב־SQLite נדרשת גרסה $2 לפחות. SQLlite לא יהיה זמין.",
- "config-no-fts3": "'''×\90×\96×\94ר×\94''': SQLite ×\9eק×\95×\9eפ×\9c ללא [//sqlite.org/fts3.html מודול FTS]. יכולות חיפוש לא יהיו זמינות בהתקנה הזאת.",
+ "config-no-fts3": "'''×\90×\96×\94ר×\94''': SQLite ×\9e×\94×\95×\93ר ללא [//sqlite.org/fts3.html מודול FTS]. יכולות חיפוש לא יהיו זמינות בהתקנה הזאת.",
"config-mbstring": "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] פעילה!'''\nהאפשרות הזאת גורמת לשגיאות ומעוותת את נתוני הקלט באופן בלתי־צפוי.\nלא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
"config-xml-bad": "מודול XML של PHP חסר.\nמדיה־ויקי דורשת פונקציות של המודול ולא תעבוד עם הגדרות כאלו.\nייתכן שצריך להתקין באמצעות RPM את חבילת php-xml.",
"config-pcre-old": "<strong>שגיאה סופנית:</strong> חובה להתקין PCRE מגרסה $1 או גרסה חדשה יותר.\nקובץ הרצת ה־PHP שלך מקושר עם PCRE מגרסה $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE מידע נוסף].",
- "config-pcre-no-utf8": "'''שגיאה סופנית''': נראה שמודול PCRE של PHP מקומפל ללא תמיכה ב־PCRE_UTF8.\nמדיה־ויקי דורשת תמיכה ב־UTF-8 לפעילות נכונה.",
+ "config-pcre-no-utf8": "<strong>שגיאה סופנית</strong>: נראה שמודול PCRE של PHP מהודר ללא תמיכה ב־PCRE_UTF8.\nמדיה־ויקי דורשת תמיכה ב־UTF-8 לפעילות נכונה.",
"config-memory-raised": "ערך האפשרות <code>memory_limit</code> של PHP הוא $1, הועלה ל־$2.",
"config-memory-bad": "'''אזהרה:''' ערך האפשרות <code>memory_limit</code> של PHP הוא $1.\nזה כנראה נמוך מדי.\nההתקנה עשויה להיכשל!",
"config-ctype": "<strong>שגיאה סופנית</strong>: נדרשת גרסת PHP שתומכת בהרחבה [http://www.php.net/manual/en/ctype.installation.php Ctype].",
- "config-iconv": "<strong>ס×\95×¤× ×\99:</strong> ×\97×\95×\91×\94 ×\9cק×\9eפ×\9c את PHP עם תמיכה ב[הרחבה http://www.php.net/manual/en/iconv.installation.php iconv].",
+ "config-iconv": "<strong>ס×\95×¤× ×\99:</strong> ×\97×\95×\91×\94 ×\9c×\94×\93ר את PHP עם תמיכה ב[הרחבה http://www.php.net/manual/en/iconv.installation.php iconv].",
"config-json": "'''שגיאה סופנית:''' PHP קומפל ללא תמיכה ב־JSON.\nיש להתקין את ההרחהב JSON ב־PHP או את ההרחבה [http://pecl.php.net/package/jsonc PECL jsonc] לפני התקנת מדיה־ויקי.\n* ההרחבה ל־PHP כלולה ב־Red Hat Enterprise Linux (ו־CentOS), אך יש להפעיל אותה ב־<code dir=\"ltr\">/etc/php.ini</code> או ב־<code dir=\"ltr\">/etc/php.d/json.ini</code>.",
+ "config-mbstring-absent": "<strong>סופני:</strong> חובה להדר את PHP עם תמיכה ב[הרחבה http://www.php.net/manual/en/mbstring.setup.php mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] מותקן",
"config-apc": "[http://www.php.net/apc APC] מותקן",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] מותקן",
- "config-no-cache": "'''אזהרה:''' אחת מהתוכנות הבאות לא נמצאה: [http://www.php.net/apc APC]‏, [http://xcache.lighttpd.net/ XCache] או [http://www.iis.net/download/WinCacheForPhp WinCache].\nמטמון עצמים לא מופעל.",
"config-no-cache-apcu": "<strong>אזהרה:</strong> לא נמצא [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] או [http://www.iis.net/download/WinCacheForPhp WinCache].\nמטמון עצמים לא מופעל.",
"config-mod-security": "'''אזהרה''': בשרת הווב שלך מופעל [http://modsecurity.org/ mod_security]. אם הוא לא מוגדר טוב, זה יכול לגרום לבעיות במדיה־ויקי ובתכנה אחרת שמאפשרת למשתמשים לשלוח תוכן שרירותי.\nיש לקרוא את [http://modsecurity.org/documentation/ התיעוד של mod_security] או ליצור קשר עם אנשי התמיכה של שירותי האירוח שלכם אם מופיעות לך שגיאות אקראיות.",
"config-diff3-bad": "GNU diff3 לא נמצא.",
"config-ns-site-name": "זהה לשם הוויקי: $1",
"config-ns-other": "אחר (לציין)",
"config-ns-other-default": "הוויקי שלי",
- "config-project-namespace-help": "בהתאם לדוגמה של ויקיפדיה, אתרי ויקי רבים שומרים על דפי המדיניות שלהם בנפרד מדפי התוכן שלהם ב\"'''מרחב השמות של המיזם'''\" (\"'''project namespace'''\").\nכל שמות הדפים במרחב השמות הזה מתחילים בתחילית מסוימת שאפשר להגדיר כאן.\nבדרך כלל התחילית הזאת מבוססת על שם הוויקי, והיא אינה יכולה להכיל תווי פיסוק כגון \"#\" או \":\".",
+ "config-project-namespace-help": "בהתאם לדוגמה של ויקיפדיה, אתרי ויקי רבים שומרים על דפי המדיניות שלהם בנפרד מדפי התוכן שלהם ב'''מרחב השמות של המיזם''' (באנגלית: '''project namespace''').\nכל שמות הדפים במרחב השמות הזה מתחילים בתחילית מסוימת שאפשר להגדיר כאן.\nבדרך כלל התחילית הזאת מבוססת על שם הוויקי, והיא אינה יכולה להכיל תווי פיסוק כגון \"#\" או \":\".",
"config-ns-invalid": "מרחב השמות \"<nowiki>$1</nowiki>\" אינו תקין.\nיש להקליד שם אחר למרחב השמות של המיזם.",
"config-ns-conflict": "מרחב השמות שהגדרת \"<nowiki>$1</nowiki>\" מתנגש עם מרחב שמות מובנה של מדיה־ויקי.\nהגדירו מרחב שמות מיזם שונה.",
"config-admin-box": "חשבון מפעיל",
"config-install-mainpage": "יצירת דף ראשי עם תוכן התחלתי",
"config-install-extension-tables": "יצירת טבלאות להרחבות מופעלות",
"config-install-mainpage-failed": "לא הצליחה הכנסת דף ראשי: $1.",
- "config-install-done": "'''מזל טוב!'''\nהתקנתם בהצלחה את מדיה־ויקי.\n\nתוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.\nהוא מכיל את כל ההגדרות שלכם.\n\nתצטרכו להוריד אותו ולשים אותו בבסיס ההתקנה של הוויקי שלכם (אותה התיקייה שבה נמצא הקובץ index.php). ההורדה הייתה אמורה להתחיל באופן אוטומטי.\n\nאם ההורדה לא התחילה, או אם ביטלתם אותה, אפשר להתחיל אותה מחדש בלחיצה על הקישור הבא:\n\n$3\n\n'''שימו לב''': אם לא תעשו זאת עכשיו, קובץ ההגדרות המחוּלל לא יהיה זמין לכם שוב.\n\nאחרי שתעשו את זה, תוכלו '''[$2 להיכנס לוויקי שלכם]'''.",
+ "config-install-done": "</strong>מזל טוב!</strong>\nהתקנתם בהצלחה את מדיה־ויקי.\n\nתוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.\nהוא מכיל את כל ההגדרות שלכם.\n\nתצטרכו להוריד אותו ולשים אותו בבסיס ההתקנה של הוויקי שלכם (אותה התיקייה שבה נמצא הקובץ index.php). ההורדה הייתה אמורה להתחיל באופן אוטומטי.\n\nאם ההורדה לא התחילה, או אם ביטלתם אותה, אפשר להתחיל אותה מחדש בלחיצה על הקישור הבא:\n\n$3\n\n</strong>שימו לב</strong>: אם לא תעשו זאת עכשיו, קובץ ההגדרות המחוּלל לא יהיה זמין לכם שוב.\n\nאחרי שתעשו את זה, תוכלו </strong>[$2 להיכנס לוויקי שלכם]</strong>.",
"config-download-localsettings": "הורדת <code>LocalSettings.php</code>",
"config-help": "עזרה",
"config-help-tooltip": "להרחיב",
"config-nofile": "הקובץ \"$1\" לא נמצא. האם הוא נמחק?",
"config-extension-link": "הידעת שמדיה־ויקי תומכת ב־[//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions הרחבות]?\n\nבאפשרותך לעיין ב־[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category הרחבות לפי קטגוריה].",
- "mainpagetext": "'''תוכנת מדיה־ויקי הותקנה בהצלחה.'''",
+ "mainpagetext": "<strong>תוכנת מדיה־ויקי הותקנה בהצלחה.</strong>",
"mainpagedocfooter": "היעזרו ב[//meta.wikimedia.org/wiki/Help:Contents מדריך למשתמש] למידע על שימוש בתוכנת הוויקי.\n\n== קישורים שימושיים ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings רשימת ההגדרות]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ שאלות ותשובות על מדיה־ויקי]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources תרגום מדיה־ויקי לשפה שלך]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam איך להיאבק נגד ספאם באתר הוויקי שלך]"
}
"Imperadeiro98",
"Cainamarques",
"Vitorvicentevalente",
- "Macofe"
+ "Macofe",
+ "Diniscoelho"
]
},
"config-desc": "O instalador do MediaWiki",
"config-nofile": "Não foi possível encontrar o ficheiro \"$1\". Terá sido apagado?",
"config-extension-link": "Sabia que a sua wiki suporta [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensões]?\n\nPode procurar [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensões por categoria].",
"mainpagetext": "<strong>MediaWiki instalado.</strong>",
- "mainpagedocfooter": "Consulte o [//meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalize MediaWiki para seu idioma]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda a combater o spam na sua wiki]"
+ "mainpagedocfooter": "Consulte o [//meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de opções de configuração]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Regionalize o MediaWiki para seu idioma]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprenda a combater spam na sua wiki]"
}
"config-no-db": "Kunde inte hitta en lämplig databasdrivrutin! Du måste installera en databasdrivrutin för PHP.\nFöljande databas{{PLURAL:$2|typ |typer}} stöds: $1.\n\nI du själv kompilerat din PHP, konfigurera den med en databasklient aktiverad genom att t.ex. använda <code>./configure --with-mysqli</code>.\nOm du installerade PHP från ett Debian- eller Ubuntupaket måste du även installera, t.ex. <code>php5-mysql</code>-paketet.",
"config-outdated-sqlite": "'''Varning:''' du har SQLite $1, vilket är lägre än minimikravet version $2. SQLite kommer inte att vara tillgänglig.",
"config-no-fts3": "'''Varning:''' SQLite kompileras utan [//sqlite.org/fts3.html FTS3-modulen], sökfunktioner kommer att vara otillgängliga på denna backend.",
- "config-register-globals-error": "<strong>Fel: PHP-alternativet <code>[http://php.net/register_globals register_globals]</code> är aktiverad.\nDen måste vara inaktiverad för att fortsätta med installationen.</strong>\nSe [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] för hjälp om hur man gör så.",
- "config-magic-quotes-gpc": "<strong>Kritiskt: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_gpc är aktiv!</strong>\nDetta alternativ korrumperar inmatad data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
- "config-magic-quotes-runtime": "'''Kritiskt: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] är aktiv!'''\nDetta alternativ korrumperar inmatad data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
- "config-magic-quotes-sybase": "'''Kritiskt: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] är aktiv!'''\nDetta alternativ korrumperar inmatad data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
"config-mbstring": "'''Kritiskt: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] är aktiv!'''\nDetta alternativ orsakar fel och kan korrumpera data oförutsägbart.\nDu kan inte installera eller använda MediaWiki om detta alternativ är aktiverat.",
- "config-safe-mode": "''' Varning:''' PHP:s [http://www.php.net/features.safe-mode felsäkra läge] är aktivt.\nDet kan orsaka problem, särskilt om du använder filuppladdningar och <code>math</code>-stöd.",
"config-xml-bad": "PHP:s XML-modul saknas.\nMediaWiki kräver funktioner i denna modul och kommer inte att fungera i den här konfigurationen.\nDu kan behöva installera RPM-paketet för php-xml.",
"config-pcre-old": "'''Kritiskt:''' PCRE $1 eller senare krävs.\nDin PHP-binär är länkad till PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mer information].",
"config-pcre-no-utf8": "'''Kritiskt:''' PHP:s PCRE-modul verkar vara kompilerat utan PCRE_UTF8-stöd.\nMediaWiki kräver stöd för UTF-8 för att fungera korrekt.",
"config-ctype": "'''Kritiskt:''' PHP måste kompileras med stöd för [http://www.php.net/manual/en/ctype.installation.php Ctype-tillägget].",
"config-iconv": "<strong>Kritiskt:</strong> PHP måste kompileras med stöd för [http://www.php.net/manual/en/iconv.installation.php iconv-tillägget].",
"config-json": "'''Varning:''' PHP kompilerades utan JSON-stöd.\nDu måste antingen installera PHP JSON-tillägget eller [http://pecl.php.net/package/jsonc PECL jsonc]-tillägget före installationen av MediaWiki.\n* PHP-tillägget är inkluderat i Red Hat Enterprise Linux (CentOS) 5 och 6, men måste aktiveras i <code>/etc/php.ini</code> eller <code>/etc/php.d/json.ini</code>.\n* Vissa Linux-distributioner släppta efter maj 2013 har utelämnat PHP-tillägget och har istället inkluderat PECL-tillägget som <code>php5-json</code> eller <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "'''Kritiskt:''' PHP måste kompileras med stöd för tillägget [http://www.php.net/manual/en/mbstring.setup.php mbstring mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] är installerat",
"config-apc": "[http://www.php.net/apc APC] är installerat",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] är installerat",
- "config-no-cache": "'''Varning:''' Kunde inte hitta [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] eller [http://www.iis.net/download/WinCacheForPhp WinCache].\nCachelagring av objekt är inte aktiverat.",
"config-no-cache-apcu": "'''Varning:''' Kunde inte hitta [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] eller [http://www.iis.net/download/WinCacheForPhp WinCache].\nCachelagring av objekt är inte aktiverat.",
"config-mod-security": "'''Varning:''' Din webbserver har [http://modsecurity.org/ mod_security] aktiverat. Om felaktigt konfigurerat kan den skapa problem för MediaWiki eller annan programvara som tillåter användaren att posta godtyckligt innehåll.\nTitta på [http://modsecurity.org/documentation/ mod_security-dokumentationen] eller kontakta din värd om du påträffar slumpmässiga fel.",
"config-diff3-bad": "GNU diff3 hittades inte.",
"config-ns-site-name": "Samma som wikinamnet: $1",
"config-ns-other": "Annan (specificera)",
"config-ns-other-default": "MinWiki",
- "config-project-namespace-help": "Per Wikipedias exempel håller många wikis sina policy-sidor separata från innehållssidorna i en \"'''projektnamnrymd'''\".\nAlla sidtitlar i denna namnrymd startar med ett visst prefix vilket du specificerar här.\nVanligtvis kan detta namn härledas från namnet på wikin, men den får inte innehålla interpunktionstecken som exempelvis \"#\" eller \":\".",
+ "config-project-namespace-help": "Per Wikipedias exempel håller många wikis sina policy-sidor separata från innehållssidorna i en '''projektnamnrymd'''.\nAlla sidtitlar i denna namnrymd startar med ett visst prefix vilket du specificerar här.\nVanligtvis kan detta namn härledas från namnet på wikin, men den får inte innehålla interpunktionstecken som exempelvis \"#\" eller \":\".",
"config-ns-invalid": "Den angivna namnrymden \"<nowiki>$1</nowiki>\" är ogiltig.\nAnge en annan namnrymd för projektet.",
"config-ns-conflict": "Den angivna namnrymden \"<nowiki>$1</nowiki>\" står i konflikt med en standardnamnrymd för MediaWiki.\nAnge en annan namnrymd för projektet.",
"config-admin-box": "Administratörskonto",
"config-install-mainpage": "Skapa huvudsida med standardinnehåll",
"config-install-extension-tables": "Skapar tabeller för aktiverade tillägg",
"config-install-mainpage-failed": "Kunde inte infoga huvudsidan: $1",
- "config-install-done": "'''Grattis!'''\nDu har installerat MediaWiki.\n\nInstallationsprogrammet har genererat filen <code>LocalSettings.php</code>.\nDet innehåller alla dina konfigurationer.\n\nDu kommer att behöva ladda ner den och placera den i roten för din wiki-installation (samma katalog som index.php). Nedladdningen borde ha startats automatiskt.\n\nOm ingen nedladdning erbjöds, eller om du har avbrutit det kan du starta om nedladdningen genom att klicka på länken nedan:\n\n$3\n\n'''OBS''': Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.\n\nNär det är klart, kan du '''[$2 gå in på din wiki]'''.",
+ "config-install-done": "<strong>Grattis!</strong>\nDu har installerat MediaWiki.\n\nInstallationsprogrammet har genererat filen <code>LocalSettings.php</code>.\nDet innehåller alla dina konfigurationer.\n\nDu kommer att behöva ladda ner den och placera den i roten för din wiki-installation (samma katalog som index.php). Nedladdningen borde ha startats automatiskt.\n\nOm ingen nedladdning erbjöds, eller om du har avbrutit det kan du starta om nedladdningen genom att klicka på länken nedan:\n\n$3\n\n<strong>OBS</strong>: Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.\n\nNär det är klart, kan du <strong>[$2 gå in på din wiki]</strong>",
"config-download-localsettings": "Ladda ner <code>LocalSettings.php</code>",
"config-help": "hjälp",
"config-help-tooltip": "klicka för att expandera",
"config-nofile": "Filen \"$1\" kunde inte hittas. Har den raderats?",
"config-extension-link": "Visste du att din wiki stödjer [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions tillägg]?\n\nDu kan bläddra [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category tillägg efter kategori].",
- "mainpagetext": "'''MediaWiki har installerats utan problem.'''",
+ "mainpagetext": "<strong>MediaWiki har installerats utan problem.</strong>",
"mainpagedocfooter": "Information om hur wiki-programvaran används finns i [//meta.wikimedia.org/wiki/Help:Contents användarguiden].\n\n== Att komma igång ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista över konfigurationsinställningar]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postlista för nya versioner av MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokalisera MediaWiki för ditt språk]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Läs om hur du bekämpar spam på din wiki]"
}
global $wgContLang, $wgUserrightsInterwikiDelimiter;
if ( !$this->plaintext ) {
- $text = $wgContLang->ucfirst( $title->getText() );
+ $text = $wgContLang->ucfirst( $title->getDBkey() );
$parts = explode( $wgUserrightsInterwikiDelimiter, $text, 2 );
if ( count( $parts ) === 2 ) {
- $titleLink = WikiMap::foreignUserLink( $parts[1], $parts[0],
- htmlspecialchars( $title->getText() ) );
+ $titleLink = WikiMap::foreignUserLink(
+ $parts[1],
+ $parts[0],
+ htmlspecialchars(
+ strtr( $parts[0], '_', ' ' ) .
+ $wgUserrightsInterwikiDelimiter .
+ $parts[1]
+ )
+ );
if ( $titleLink !== false ) {
return $titleLink;
# Tags relating to image configuration
'ComponentsConfiguration' => Exif::UNDEFINED, # Meaning of each component #p33
'CompressedBitsPerPixel' => Exif::RATIONAL, # Image compression mode
- 'PixelYDimension' => Exif::SHORT_OR_LONG, # Valid image width
- 'PixelXDimension' => Exif::SHORT_OR_LONG, # Valid image height
+ 'PixelYDimension' => Exif::SHORT_OR_LONG, # Valid image height
+ 'PixelXDimension' => Exif::SHORT_OR_LONG, # Valid image width
# Tags relating to related user information
'MakerNote' => Exif::IGNORE, # Manufacturer notes
namespace MediaWiki\Session;
+use MediaWiki\MediaWikiServices;
use Psr\Log\LoggerInterface;
use BagOStuff;
use CachedBagOStuff;
* Reset the internal caching for unit testing
*/
public static function resetCache() {
- if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
- // @codeCoverageIgnoreStart
- throw new MWException( __METHOD__ . ' may only be called from unit tests!' );
- // @codeCoverageIgnoreEnd
- }
+ MediaWikiServices::failUnlessBootstrapping( __METHOD__ );
self::$globalSession = null;
self::$globalSessionRequest = null;
* @file
* @ingroup Site
*
+ * @deprecated 1.27 use DBSiteStore and CachingSiteStore instead.
+ *
* @license GNU GPL v2+
* @author Daniel Kinzler
*/
*
* @file
*/
+use MediaWiki\MediaWikiServices;
/**
* The CentralIdLookup service allows for connecting local users with
* Reset internal cache for unit testing
*/
public static function resetCache() {
- if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
- throw new MWException( __METHOD__ . ' may only be called from unit tests!' );
- }
+ // TODO: manage service instances in MediaWikiServices
+ MediaWikiServices::failUnlessBootstrapping( __METHOD__ );
self::$instances = [];
}
return Status::newGood( true );
}
+ $type = $oldaddr != '' ? 'changed' : 'set';
+ $notificationResult = null;
+
+ if ( $wgEmailAuthentication ) {
+ // Send the user an email notifying the user of the change in registered
+ // email address on their previous email address
+ if ( $type == 'changed' ) {
+ $change = $str != '' ? 'changed' : 'removed';
+ $notificationResult = $this->sendMail(
+ wfMessage( 'notificationemail_subject_' . $change )->text(),
+ wfMessage( 'notificationemail_body_' . $change,
+ $this->getRequest()->getIP(),
+ $this->getName(),
+ $str )->text()
+ );
+ }
+ }
+
$this->setEmail( $str );
if ( $str !== '' && $wgEmailAuthentication ) {
// Send a confirmation request to the new address if needed
- $type = $oldaddr != '' ? 'changed' : 'set';
$result = $this->sendConfirmationMail( $type );
+
+ if ( $notificationResult !== null ) {
+ $result->merge( $notificationResult );
+ }
+
if ( $result->isGood() ) {
- // Say to the caller that a confirmation mail has been sent
+ // Say to the caller that a confirmation and notification mail has been sent
$result->value = 'eauth';
}
} else {
"exif-colorspace": "Kleurruimte",
"exif-componentsconfiguration": "Betekenis van elke komponent",
"exif-compressedbitsperpixel": "Beeldkompressiemetode",
- "exif-pixelydimension": "Beeldwydte",
- "exif-pixelxdimension": "Beeldhoogte",
+ "exif-pixelxdimension": "Beeldwydte",
+ "exif-pixelydimension": "Beeldhoogte",
"exif-usercomment": "Opmerkings",
"exif-relatedsoundfile": "Verwante klanklêer",
"exif-datetimeoriginal": "Gegewens opgestel op",
"exif-flashpixversion": "የተደገፈ Flashpix ዝርያ",
"exif-componentsconfiguration": "የየክፍለ ነገሩ ትርጉም",
"exif-compressedbitsperpixel": "የስዕል መጨመቅ ዘዴ",
- "exif-pixelydimension": "እውነተኛ የስዕል ስፋት",
- "exif-pixelxdimension": "እውነተኛ የስዕል ቁመት",
+ "exif-pixelxdimension": "እውነተኛ የስዕል ስፋት",
+ "exif-pixelydimension": "እውነተኛ የስዕል ቁመት",
"exif-usercomment": "የተጠቃሚው ማጠቃለያ",
"exif-relatedsoundfile": "የተዛመደ የድምጽ ፋይል",
"exif-datetimeoriginal": "መረጃው የተፈጠረበት ቀንና ሰዓት",
"exif-colorspace": "Espacio de colors",
"exif-componentsconfiguration": "Significación de cada component",
"exif-compressedbitsperpixel": "Modo de compresión d'a imachen",
- "exif-pixelydimension": "Amplaria d'a imachen",
- "exif-pixelxdimension": "Altaria d'a imachen",
+ "exif-pixelxdimension": "Amplaria d'a imachen",
+ "exif-pixelydimension": "Altaria d'a imachen",
"exif-usercomment": "Comentarios de l'usuario",
"exif-relatedsoundfile": "Fichero d'audio relacionato",
"exif-datetimeoriginal": "Calendata y hora de cheneración d'os datos",
"exif-colorspace": "فضاء الألوان",
"exif-componentsconfiguration": "معنى كل مكونة",
"exif-compressedbitsperpixel": "طور ضغط الصورة",
- "exif-pixelydimension": "عرض الصورة",
- "exif-pixelxdimension": "ارتفاع الصورة",
+ "exif-pixelxdimension": "عرض الصورة",
+ "exif-pixelydimension": "ارتفاع الصورة",
"exif-usercomment": "تعليقات المستخدم",
"exif-relatedsoundfile": "ملف صوتي مرتبط",
"exif-datetimeoriginal": "تاريخ ووقت توليد البيانات",
"redirect-not-exists": "المطلوب غير موجود",
"fileduplicatesearch": "بحث عن ملفات مكررة",
"fileduplicatesearch-summary": "ابحث عن الملفات المكررة بناء على قيم الهاش.",
- "fileduplicatesearch-legend": "بحث عن مكرر",
"fileduplicatesearch-filename": "اسم الملف:",
"fileduplicatesearch-submit": "بحث",
"fileduplicatesearch-info": "$1 × $2 بكسل<br />حجم الملف: $3<br />نوع MIME: $4",
"exif-colorspace": "farq lon",
"exif-componentsconfiguration": "maana kol mokawwin",
"exif-compressedbitsperpixel": "tor daght sora",
- "exif-pixelydimension": "ard sora sahih",
- "exif-pixelxdimension": "tol sora sahih",
+ "exif-pixelxdimension": "ard sora sahih",
+ "exif-pixelydimension": "tol sora sahih",
"exif-usercomment": "taaliqat lmostakhdim",
"exif-relatedsoundfile": "milf sawti mortabit",
"exif-datetimeoriginal": "tarikh o wqt tawlid lbayanat",
"exif-colorspace": "فرق اللون",
"exif-componentsconfiguration": "معنى كل مكون",
"exif-compressedbitsperpixel": "طور ضغط الصورة",
- "exif-pixelydimension": "عرض صورة صحيح",
- "exif-pixelxdimension": "ارتفاع صورة صحيح",
+ "exif-pixelxdimension": "عرض صورة صحيح",
+ "exif-pixelydimension": "ارتفاع صورة صحيح",
"exif-usercomment": "تعليقات اليوزر",
"exif-relatedsoundfile": "ملف صوت مرتبط",
"exif-datetimeoriginal": "تاريخ و وقت الإنتاج",
"exif-colorspace": "ৰং স্থান",
"exif-componentsconfiguration": "প্ৰতিটো উপাদানৰ অৰ্থ",
"exif-compressedbitsperpixel": "ছবি সংকোচন অৱস্থা",
- "exif-pixelydimension": "ছবিৰ প্ৰস্থতা",
- "exif-pixelxdimension": "ছবিৰ উচ্চতা",
+ "exif-pixelxdimension": "ছবিৰ প্ৰস্থতা",
+ "exif-pixelydimension": "ছবিৰ উচ্চতা",
"exif-usercomment": "সদস্যৰ মন্তব্য",
"exif-relatedsoundfile": "সংশ্লিষ্ট শ্ৰব্য ফাইল",
"exif-datetimeoriginal": "তথ্য সৃজনৰ তাৰিখ আৰু সময়",
"noemail": "L'usuariu «$1» nun tien rexistrada nenguna direición de corréu.",
"noemailcreate": "Tienes de conseñar una direición de corréu válida.",
"passwordsent": "Unvióse una contraseña nueva a la direición de corréu rexistrada pa «$1».\nPor favor vuelvi a aniciar sesión depués de recibila.",
- "blocked-mailpassword": "La edición ta bloquiada dende la to direición IP, y por tanto nun se permite usar la función de recuperar contraseñes pa evitar abusos.",
+ "blocked-mailpassword": "La to direición IP tien bloquiada la edición. Pa torgar los abusos, nun se permite usar la recuperación de contraseñes dende esta direición IP.",
"eauthentsent": "Unvióse un corréu electrónicu de confirmación a la direición indicada.\nEnantes de que s'unvie nengún otru corréu a la cuenta, has de siguir les instrucciones d'esi corréu pa confirmar que la cuenta ye daveres de to.",
"throttled-mailpassword": "Yá s'unvió un corréu de reaniciu la clave {{PLURAL:$1|na postrer hora|nes postreres $1 hores}}.\nPa evitar abusos, namái s'unviará un corréu de reaniciu cada {{PLURAL:$1|hora|$1 hores}}.",
"mailerror": "Fallu al unviar el corréu: $1",
"uploadstash-badtoken": "Nun pudo facese esa operación. Seique caducó la identificación pa editar. Vuelve a tentalo.",
"uploadstash-errclear": "Falló'l desaniciu de los ficheros.",
"uploadstash-refresh": "Anovar la llista de ficheros",
+ "uploadstash-thumbnail": "ver miniatura",
"invalid-chunk-offset": "Allugamientu inválidu del fragmentu",
"img-auth-accessdenied": "Accesu denegáu",
"img-auth-nopathinfo": "Falta PATH_INFO.\nEl to sirvidor nun ta configuráu pa pasar esta información.\nPue tar basáu en CGI y nun tener sofitu pa img_auth.\nVer https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization",
"ipb-unblock": "Desbloquiar un nome d'usuariu o direición IP",
"ipb-blocklist": "Ver los bloqueos esistentes",
"ipb-blocklist-contribs": "Collaboraciones de {{GENDER:$1|$1}}",
+ "ipb-blocklist-duration-left": "falten $1",
"unblockip": "Desbloquiar usuariu",
"unblockiptext": "Usa'l formulariu d'abaxo pa restablecer l'accesu d'escritura a una direicion IP o a un nome d'usuariu previamente bloquiáu.",
"ipusubmit": "Desaniciar esti bloquéu",
"import-logentry-upload-detail": "$1 {{PLURAL:$1|revisión importada|revisiones importaes}}",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revisión importada|revisiones importaes}} dende $2",
"javascripttest": "Prueba de JavaScript",
- "javascripttest-pagetext-noframework": "Esta páxina ta acutada pa executar pruebes de javascript.",
- "javascripttest-pagetext-unknownframework": "L'entornu de pruebes «$1» ye desconocíu.",
"javascripttest-pagetext-unknownaction": "Aición desconocida «$1».",
- "javascripttest-pagetext-frameworks": "Escueyi un de los siguientes entornos de pruebes: $1",
- "javascripttest-pagetext-skins": "Escueyi una apariencia pa executar les pruebes:",
"javascripttest-qunit-intro": "Ver la [$1 documentación de les pruebes] en mediawiki.org.",
"tooltip-pt-userpage": "La to páxina d'{{GENDER:|usuariu|usuaria}}",
"tooltip-pt-anonuserpage": "La páxina d'usuariu de la IP cola que tas editando",
"exif-colorspace": "Espaciu de color",
"exif-componentsconfiguration": "Significáu de cada componente",
"exif-compressedbitsperpixel": "Mou de compresión d'imaxe",
- "exif-pixelydimension": "Anchor d'imaxe",
- "exif-pixelxdimension": "Altor d'imaxe",
+ "exif-pixelxdimension": "Anchor d'imaxe",
+ "exif-pixelydimension": "Altor d'imaxe",
"exif-usercomment": "Comentarios del usuariu",
"exif-relatedsoundfile": "Archivu d'audiu rellacionáu",
"exif-datetimeoriginal": "Data y hora de xeneración de los datos",
"version-libraries-description": "Descripción",
"version-libraries-authors": "Autores",
"redirect": "Redireición por ID del ficheru, usuariu, páxina, revisión o rexistru",
- "redirect-legend": "Redirixir a un ficheru o una páxina",
"redirect-summary": "Esta páxina especial redirixe a un ficheru (dando'l so nome), una páxina (dando una ID de revisión o de páxina), una páxina d'usuariu (dando un númberu d'ID d'usuariu) o una entrada del rexistru (dando la ID del rexistru). Usu: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], o [[{{#Special:Redirect}}/logid/186]].",
"redirect-submit": "Dir",
"redirect-lookup": "Buscar:",
"redirect-not-exists": "Nun s'alcontró'l valor",
"fileduplicatesearch": "Buscar archivos duplicaos",
"fileduplicatesearch-summary": "Busca archivos duplicaos basándose nos sos valores fragmentarios.",
- "fileduplicatesearch-legend": "Buscar duplicaos",
"fileduplicatesearch-filename": "Nome del ficheru:",
"fileduplicatesearch-submit": "Buscar",
"fileduplicatesearch-info": "$1 × $2 píxeles<br />Tamañu del archivu: $3<br />Triba MIME: $4",
"logentry-protect-protect-cascade": "$1 {{GENDER:$2|protexó}} a $3 $4 [en cascada]",
"logentry-protect-modify": "$1 {{GENDER:$2|camudó}} el nivel de protección de $3 $4",
"logentry-protect-modify-cascade": "$1 {{GENDER:$2|camudó}} el nivel de protección de $3 $4 [en cascada]",
- "logentry-rights-rights": "$1 {{GENDER:$2|camudó}} la pertenencia a grupos de $3 dende $4 a $5",
+ "logentry-rights-rights": "$1 {{GENDER:$2|camudó}} la pertenencia a grupos de {{GENDER:$3|$3}} dende $4 a $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|camudó}} la pertenencia a grupos de $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|promocionó}} automáticamente de $4 a $5",
"logentry-upload-upload": "$1 {{GENDER:$2|xubió}} $3",
"api-error-unknownerror": "Fallu desconocíu: «$1».",
"api-error-uploaddisabled": "Les xubíes tan desactivaes nesta wiki.",
"api-error-verification-error": "Esti ficheru pudiera tar corrompíu, o tien una estensión incorreuta.",
+ "api-error-was-deleted": "Anteriormente xubióse y desanicióse dempués un ficheru con esti nome.",
"duration-seconds": "$1 {{PLURAL:$1|segundu|segundos}}",
"duration-minutes": "$1 {{PLURAL:$1|minutu|minutos}}",
"duration-hours": "$1 {{PLURAL:$1|hora|hores}}",
"special-characters-group-ipa": "AFI",
"special-characters-group-symbols": "Símbolos",
"special-characters-group-greek": "Griegu",
+ "special-characters-group-greekextended": "Griegu estendíu",
"special-characters-group-cyrillic": "Cirílicu",
"special-characters-group-arabic": "Árabe",
"special-characters-group-arabicextended": "Árabe estendíu",
"sessionprovider-generic": "sesiones $1",
"sessionprovider-mediawiki-session-cookiesessionprovider": "sesiones basaes en cookies",
"sessionprovider-nocookies": "Les cookies puen tar desactivaes. Asegúrate de tener activaes les cookies y vuelve a principiar.",
- "randomrootpage": "Páxina raíz al debalu"
+ "randomrootpage": "Páxina raíz al debalu",
+ "log-action-filter-block": "Tipu de bloquéu:",
+ "log-action-filter-delete": "Tipu de desaniciu:",
+ "log-action-filter-patrol": "Tipu de patrulla:",
+ "log-action-filter-protect": "Tipu de proteición:",
+ "log-action-filter-upload": "Tipu de carga:",
+ "log-action-filter-all": "Too",
+ "log-action-filter-block-block": "Bloquéu",
+ "log-action-filter-block-reblock": "Cambiu de bloquéu",
+ "log-action-filter-block-unblock": "Desbloquéu",
+ "log-action-filter-delete-delete": "Desaniciu de páxines",
+ "log-action-filter-delete-restore": "Restauración de páxines",
+ "log-action-filter-delete-event": "Desaniciu de rexistros",
+ "log-action-filter-delete-revision": "Desaniciu de revisión",
+ "log-action-filter-patrol-patrol": "Patrulláu manual",
+ "log-action-filter-patrol-autopatrol": "Patrulláu automáticu",
+ "log-action-filter-protect-protect": "Proteición",
+ "log-action-filter-protect-modify": "Cambiu na proteición",
+ "log-action-filter-protect-unprotect": "Desproteición",
+ "log-action-filter-upload-upload": "Nueva carga",
+ "log-action-filter-upload-overwrite": "Recargar"
}
"exif-exifversion": "Version exif",
"exif-colorspace": "Ksevaxo",
"exif-compressedbitsperpixel": "Ewavaraxivaracave",
- "exif-pixelydimension": "Mante ke enafa ewava",
- "exif-pixelxdimension": "Ontine ke enafa ewava",
+ "exif-pixelxdimension": "Mante ke enafa ewava",
+ "exif-pixelydimension": "Ontine ke enafa ewava",
"exif-usercomment": "Favesikaf sebuks",
"exif-relatedsoundfile": "Fichier audio lié",
"exif-datetimeoriginal": "Viel is gemelt ke nasbara va origeem",
"exif-colorspace": "रंग स्थान",
"exif-componentsconfiguration": "हर घटक कय मतलब",
"exif-compressedbitsperpixel": "चित्र कॉम्प्रेशन मोड",
- "exif-pixelydimension": "छवि चौड़ाई",
- "exif-pixelxdimension": "छवि ऊँचाई",
+ "exif-pixelxdimension": "छवि चौड़ाई",
+ "exif-pixelydimension": "छवि ऊँचाई",
"exif-usercomment": "सदस्य टिप्पणी",
"exif-relatedsoundfile": "संबंधित ध्वनी फ़ाईल",
"exif-datetimeoriginal": "डेटा सञ्चालन कय मिति अव समय",
"exif-copyright": "Sahibinin müəlliflik hüququ",
"exif-exifversion": "Exif versiyası",
"exif-colorspace": "Rəng sahəsi",
- "exif-pixelydimension": "Şəkilin eni",
- "exif-pixelxdimension": "Şəkilin hündürlüyü",
+ "exif-pixelxdimension": "Şəkilin eni",
+ "exif-pixelydimension": "Şəkilin hündürlüyü",
"exif-usercomment": "İstifadəçi şərhi",
"exif-datetimeoriginal": "Orijinal tarix və vaxt",
"exif-datetimedigitized": "Tarix və vaxt rəqəmləşdirilir",
"newarticle": "(یئنی)",
"newarticletext": "مؤوجود اوْلمايان صحیفهيه اوْلان کئچیدی ایزلهدینیز. \nآشاغیداکی ساحهيه مظمونونو يازاراق بۇ صحیفهنی '''سیز''' يارادا بیلرسینیز. (علاوه معلومات اۆچون [$1 کؤمک صحیفهسینه] باخین). اگر بۇ صحیفهيه سهون گلمیسینیزسه سادهجه اوْلاراق براوزئرین '''گئری''' دۆيمهسینه وۇرون.",
"anontalkpagetext": "''بو صحیفه قئیدیاتدان کئچممیش و یا داخیل اولمامیش آنونیم ایستیفادچییه عایید موذاکیره صحیفهسیدیر.\nاونا گؤره بو ایستیفادچینی رقملردن عبارت ایپ اونوانی ایله معین ائتمک مجبوریتیندییک.\nبئله ایپ اونوان بیر نئچه فرد طرفیندن ایستیفادهده اولا بیلر.\nاگر سیز آنونیم ایستیفادچیسینیزسه و بو مئساژین سیزه عایید اولمادیغینی دوشونورسونوزسه، اوندا [[Special:UserLogin/signup|قئیدیاتدان کئچین]] و یا [[Special:UserLogin|داخی اولون]].''",
- "noarticletext": "ایندی بو صحیفهده یازی یوخدور.\nسیز آیری صحیفهلرده [[Special:Search/{{PAGENAME}}|بو باشلیق اوچون آختارا بیلرسیز]]،\nیا دا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ایلگیلی قئیدلری آختارا بیلرسیز]،\nیا دا [{{fullurl:{{FULLPAGENAME}}|action=edit}} بو صحیفهنی دَییشدیره بیلرسیز]</span>.",
+ "noarticletext": "ایندی بو صفحهده یازی یوخدور.\nسیز آیری صفحهلرده [[Special:Search/{{PAGENAME}}|بو باشلیق اوچون آختارا بیلرسیز]]،\nیا دا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} باغلی قئیدلری آختارا بیلرسیز]،\nیا دا [{{fullurl:{{FULLPAGENAME}}|action=edit}} بو صفحهنی دَییشدیره بیلرسیز]</span>.",
"noarticletext-nopermission": "بو صحیفه ایندی بوشدور. \nباشقا صحیفهلرده عینی آددا صحیفهنی [[Special:Search/{{PAGENAME}}| آختار]], علاقهلی قئيدلره \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} باخا],\nو يا صحیفهنی [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktə]</span> ائده بیلرسینیز.",
"missing-revision": "«{{FULLPAGENAME}}» صحیفهسی اوچون $1 نومرهلی نوسخه یوخدور.\n\nعموماُ بو ایشکال، واختی گئچمیش بیر باغلانتی ایله سیلینمیش بیر صحیفهیه گلنده، قاباغا گلر.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سیلمک سیاهی]سینده باشقا بیلگیلر اولا بیلر.",
"userpage-userdoesnotexist": "«$1» ایستیفادهچی حسابی یارانماییبدیر.\nبو صحیفهنی یارادماق یوخسا دَییشدیرمگینه بیر ده باخین.",
"deleting-backlinks-warning": "'''اخطار:''' بو سیلمگه قصدینیز اولان صفحهیه، [[Special:WhatLinksHere/{{FULLPAGENAME}}|باشقا صفحهلر]] باغلانتی وئریب یا اونو اؤزلرینده ایشلدیبلر.",
"rollback": "اوولکی نوسخه لر",
"rollbacklink": "قایتار",
- "rollbacklinkcount": "$1 دییشدیرمهنی قایتار",
+ "rollbacklinkcount": "{{PLURAL:$1|دییشدیرمه}}نی قایتار",
"rollbacklinkcount-morethan": "$1-دن چوْخ دییشدیرمهنی قایتار",
"rollbackfailed": "گئری قایتارما اوغورسوزدور",
"cantrollback": "دییشدیر گئری قایتاریلا بیلمز؛ آخیرینجی دییشدیر صحیفهده اولان یئگانه فالیتدیر.",
"javascripttest": "جاوااسکریپت تِستی",
"javascripttest-pagetext-unknownaction": "تانینمایان ایش «$1».",
"javascripttest-qunit-intro": "mediawiki.org-دا [$1 تِست ائتمه سندلندیرمهلری]نه باخین.",
- "tooltip-pt-userpage": "ایشلدن صفحهنیز",
+ "tooltip-pt-userpage": "ایشلدن صفحه{{GENDER:|نیز}}",
"tooltip-pt-anonuserpage": "سیز او آیپی آدرسیله دَییشیکلیک ائتدیگینیز ایستیفادهچی صحیفهسی",
- "tooltip-pt-mytalk": "دانیشیق صفحهنیز",
+ "tooltip-pt-mytalk": "{{GENDER:|سیزین}} دانیشیق صفحهنیز",
"tooltip-pt-anontalk": "بو آیپی آدرسینین دَییشیکلیکلرینه گؤره دانیشیق",
- "tooltip-pt-preferences": "ترجیحلرینیز",
+ "tooltip-pt-preferences": "{{GENDER:|سیزین}} ترجیحلرینیز",
"tooltip-pt-watchlist": "دییشمکلرینی ایزلهدیگینیز صفحهلرین سیاهیسی",
- "tooltip-pt-mycontris": "سیزین چالیشمالارینیزین لیستی",
+ "tooltip-pt-mycontris": "{{GENDER:|سیزین}} چالیشمالارینیزین لیستی",
"tooltip-pt-login": "گیریش ائتمهیینیز توصیه اولونور؛ اما گرکلی دئییل",
"tooltip-pt-logout": "چیخیش",
"tooltip-pt-createaccount": "سیزدن دعوت اولونور ایشلدن حسابی آچیب و گیریش ائدهسیز؛ آنجاق حساب یاراتماق ایستگه باغلیدیر",
"tooltip-t-recentchangeslinked": "بو صفحهدن باغلانان صفحهلرین سون دَییشیکلیکلری",
"tooltip-feed-rss": "بو صحیفه اوچون آراساس يايیمی",
"tooltip-feed-atom": "بو صحیفه اوچون آتوم يايیمی",
- "tooltip-t-contributions": "بو ایستیفادهچینین وئردیگی دییشیکلر سیاهیسی",
+ "tooltip-t-contributions": "{{GENDER:$1|بۇ ایشلدنین}} وئردیگی دییشیکلر لیستی",
"tooltip-t-emailuser": "بو ایستیفادهچییه بیر ایمیل گؤندر",
"tooltip-t-info": "بو صفحهیه گؤره آرتیق بیلگی",
"tooltip-t-upload": "فایللار یوکله",
"exif-colorspace": "رنگ ساحهسی",
"exif-componentsconfiguration": "هر بیلشنین معناسی",
"exif-compressedbitsperpixel": "شکیل سیخیشدیرما فورماتی",
- "exif-pixelydimension": "شکیلین انی",
- "exif-pixelxdimension": "شکیلین اوزوناسی",
+ "exif-pixelxdimension": "شکیلین انی",
+ "exif-pixelydimension": "شکیلین اوزوناسی",
"exif-usercomment": "استفادچی شرحی",
"exif-relatedsoundfile": "حاقیندا سس لی فایل",
"exif-datetimeoriginal": "اورژینال یاراتما زامانی",
"redirect-not-exists": "دَگَر تاپیلمادی",
"fileduplicatesearch": "دوبلیکات فايل آختاریشی",
"fileduplicatesearch-summary": "تعمین ائتمک ديَری دؤشهمهسینده بنزر فايللاری آختار.",
- "fileduplicatesearch-legend": "Dublikatı axtar",
"fileduplicatesearch-filename": "فايل آدی:",
"fileduplicatesearch-submit": "آختار",
"fileduplicatesearch-info": "$1 × $2 پیکسِل<br />فایل اؤلچوسو: $3<br />MIME نوعو: $4",
"exif-colorspace": "Төҫтәр киңлеге",
"exif-componentsconfiguration": "Төҫ өлөштәренең төҙөлөшө",
"exif-compressedbitsperpixel": "Рәсемде ҡыҫыу ысулы",
- "exif-pixelydimension": "Рәсем киңлеге",
- "exif-pixelxdimension": "Рәсем бейеклеге",
+ "exif-pixelxdimension": "Рәсем киңлеге",
+ "exif-pixelydimension": "Рәсем бейеклеге",
"exif-usercomment": "Ҡулланыусы иҫкәрмәһе",
"exif-relatedsoundfile": "Бәйле аудио файл",
"exif-datetimeoriginal": "Төп көнө һәм ваҡыты",
"redirect-not-exists": "Мәғәнәһе табылманы",
"fileduplicatesearch": "Бер иш файлдарҙы эҙләү",
"fileduplicatesearch-summary": "Бер иш файлдарҙы хэш-кодтары буйынса эҙләү.",
- "fileduplicatesearch-legend": "Бер иш файлдарҙы эҙләү",
"fileduplicatesearch-filename": "Файл исеме:",
"fileduplicatesearch-submit": "Эҙләү",
"fileduplicatesearch-info": "$1 × $2 пиксел<br />Файлдың дәүмәле: $3<br />MIME төрө: $4",
"exif-colorspace": "فضا رنگ",
"exif-componentsconfiguration": "معنی هر جز",
"exif-compressedbitsperpixel": "مدل کمپرس کتن عکس",
- "exif-pixelydimension": "معتبرین پهنات عکس",
- "exif-pixelxdimension": "معتبرین ارتفاع عکس",
+ "exif-pixelxdimension": "معتبرین پهنات عکس",
+ "exif-pixelydimension": "معتبرین ارتفاع عکس",
"exif-usercomment": "نظرات کاربر",
"exif-relatedsoundfile": "مربوطین فایل صوتی",
"exif-datetimeoriginal": "تاریح و وهد شرکتن دیتا",
"exif-colorspace": "Espasyong kulay",
"exif-componentsconfiguration": "Panabot kan lambang komponente",
"exif-compressedbitsperpixel": "Moda nin kompresyon sa imahe",
- "exif-pixelydimension": "Lakbang kan imahe",
- "exif-pixelxdimension": "Langkaw kan imahe",
+ "exif-pixelxdimension": "Lakbang kan imahe",
+ "exif-pixelydimension": "Langkaw kan imahe",
"exif-usercomment": "Mga komento kan paragamít",
"exif-relatedsoundfile": "Kaakibay kan sagunson na pandangog",
"exif-datetimeoriginal": "Petsa asin oras kan henerasyon nin datos",
"exif-colorspace": "Колеравая прастора",
"exif-componentsconfiguration": "Канфігурацыя колеравых кампанэнтаў",
"exif-compressedbitsperpixel": "Глыбіня колеру пасьля сьцісканьня",
- "exif-pixelydimension": "Шырыня выявы",
- "exif-pixelxdimension": "Вышыня выявы",
+ "exif-pixelxdimension": "Шырыня выявы",
+ "exif-pixelydimension": "Вышыня выявы",
"exif-usercomment": "Камэнтары карыстальніка",
"exif-relatedsoundfile": "Датычны аўдыё-файл",
"exif-datetimeoriginal": "Дата і час утварэньня зьвестак",
"redirect-not-exists": "Значэньне ня знойдзена",
"fileduplicatesearch": "Пошук дублікатаў файлаў",
"fileduplicatesearch-summary": "Пошук аднолькавых файлаў на падставе іх хэшаў.",
- "fileduplicatesearch-legend": "Пошук аднолькавых файлаў",
"fileduplicatesearch-filename": "Назва файла:",
"fileduplicatesearch-submit": "Шукаць",
"fileduplicatesearch-info": "$1 × $2 піксэляў<br />Памер файла: $3<br />Тып MIME: $4",
"exif-colorspace": "Каляровая прастора",
"exif-componentsconfiguration": "Значэнні кампанентаў",
"exif-compressedbitsperpixel": "Лад сціскання выявы",
- "exif-pixelydimension": "Шырыня выявы",
- "exif-pixelxdimension": "Вышыня выявы",
+ "exif-pixelxdimension": "Шырыня выявы",
+ "exif-pixelydimension": "Вышыня выявы",
"exif-usercomment": "Заўвагі карыстальніка",
"exif-relatedsoundfile": "Дачынены гукавы файл",
"exif-datetimeoriginal": "Дата і час стварэння дадзеных",
"redirect-not-exists": "Значэнне не знойдзена",
"fileduplicatesearch": "Пошук дублікатных файлаў",
"fileduplicatesearch-summary": "Пошук дублікатных файлах на падставе іх хэшаў.",
- "fileduplicatesearch-legend": "Знайсці дублікаты",
"fileduplicatesearch-filename": "Назва файла:",
"fileduplicatesearch-submit": "Знайсці",
"fileduplicatesearch-info": "$1 × $2 кропак<br />Аб'ём файла: $3<br />Тып MIME: $4",
"wrongpassword": "Въведената парола е невалидна. Опитайте отново.",
"wrongpasswordempty": "Не е въведена парола. Опитайте отново.",
"passwordtooshort": "Необходимо е паролата да съдържа поне {{PLURAL:$1|1 знак|$1 знака}}.",
+ "passwordtoolong": "Паролата не може да бъде по-дългa пт {{PLURAL:$1|1 символ|$1 символа}}.",
"passwordtoopopular": "Често използвани пароли не могат да бъдат ползвани. Моля, изберете по-уникална парола.",
"password-name-match": "Паролата ви трябва да се различава от потребителското ви име.",
"password-login-forbidden": "Използването на това потребителско име и парола е забранено.",
"noemail": "Няма записана електронна поща за потребителя „$1“.",
"noemailcreate": "Необходимо е да въведете валиден адрес за е-поща",
"passwordsent": "Нова парола беше изпратена на електронната поща на „$1“.\nСлед като я получите, влезте отново.",
- "blocked-mailpassword": "РедакÑ\82иÑ\80анеÑ\82о оÑ\82 ваÑ\88иÑ\8f IP-адÑ\80еÑ\81 е забÑ\80анено, заÑ\82ова не ви е позволено да използвате възможността за възстановяване на парола.",
+ "blocked-mailpassword": "РедакÑ\82иÑ\80анеÑ\82о оÑ\82 Ð\92аÑ\88иÑ\8f IP-адÑ\80еÑ\81 е забÑ\80анено, заÑ\82ова не Ð\92и Ñ\81е позволÑ\8fва да използвате възможността за възстановяване на парола.",
"eauthentsent": "Писмото за потвърждение е изпратено на посочения адрес. В него са описани действията, които трябва да се извършат, за да потвърдите, че този адрес за електронна поща действително е ваш.",
"throttled-mailpassword": "Функцията за напомняне на паролата е използвана през {{PLURAL:$1|последния един час|последните $1 часа}}.\nЗа предотвратяване на злоупотреби е разрешено да се изпраща не повече от едно напомняне в рамките на {{PLURAL:$1|един час|$1 часа}}.",
"mailerror": "Грешка при изпращане на писмо: $1",
"exif-colorspace": "Цветово пространство",
"exif-componentsconfiguration": "Значение на всеки компонент",
"exif-compressedbitsperpixel": "Режим на компресия на образа",
- "exif-pixelydimension": "Ширина на изображението",
- "exif-pixelxdimension": "Височина на изображението",
+ "exif-pixelxdimension": "Ширина на изображението",
+ "exif-pixelydimension": "Височина на изображението",
"exif-usercomment": "Допълнителни коментари",
"exif-relatedsoundfile": "Свързан звуков файл",
"exif-datetimeoriginal": "Дата и час на създаване",
"redirect-not-exists": "Стойността не е намерена",
"fileduplicatesearch": "Търсене на повтарящи се файлове",
"fileduplicatesearch-summary": "Търсене на повтарящи се файлове на база хеш стойности.",
- "fileduplicatesearch-legend": "Търсене на повтарящ се файл",
"fileduplicatesearch-filename": "Име на файл:",
"fileduplicatesearch-submit": "Търсене",
"fileduplicatesearch-info": "$1 × $2 пиксела<br />Размер на файла: $3<br />MIME тип: $4",
"htmlform-chosen-placeholder": "Избиране",
"htmlform-cloner-create": "Добавяне на още",
"htmlform-cloner-delete": "Премахване",
+ "htmlform-title-not-exists": "$1 не съществува.",
"sqlite-has-fts": "$1 с поддръжка на пълнотекстово търсене",
"sqlite-no-fts": "$1 без поддръжка на пълнотекстово търсене",
"logentry-delete-delete": "$1 {{GENDER:$2|изтри}} страницата $3",
"pagelang-language": "Език",
"pagelang-use-default": "Използване на езика по подразбиране",
"pagelang-select-lang": "Избиране на език",
+ "pagelang-submit": "Изпращане",
"right-pagelang": "Промяна езика на страница",
"action-pagelang": "промяна езика на страницата",
"log-name-pagelang": "Дневник на езиковите промени",
"mw-widgets-titleinput-description-new-page": "страницата все още не съществува",
"mw-widgets-titleinput-description-redirect": "пренасочване към $1",
"api-error-blacklisted": "Моля, изберете различно, описателно заглавие.",
- "randomrootpage": "Случайна начална страница"
+ "randomrootpage": "Случайна начална страница",
+ "log-action-filter-protect": "Тип защита:",
+ "log-action-filter-upload": "Тип качване:",
+ "log-action-filter-all": "Всички",
+ "log-action-filter-block-block": "Блокиране",
+ "log-action-filter-block-reblock": "Промяна на блокирането",
+ "log-action-filter-block-unblock": "Отблокиране",
+ "log-action-filter-upload-upload": "Ново качване",
+ "log-action-filter-upload-overwrite": "Повторно качване"
}
"exif-colorspace": "رنگاني فضا",
"exif-componentsconfiguration": "هریک شه مووله په ئانی مانا",
"exif-compressedbitsperpixel": "اکس ئی پشرده ئی هالت",
- "exif-pixelydimension": "اکسئ گۆر",
- "exif-pixelxdimension": "اکسئ بُرزی",
+ "exif-pixelxdimension": "اکسئ گۆر",
+ "exif-pixelydimension": "اکسئ بُرزی",
"exif-usercomment": "کار زوروکئ توضیحات",
"exif-relatedsoundfile": "مربوتین توارین پایل",
"exif-datetimeoriginal": "دیتائانی ودئ بوتین ئی تاریخ و وخت",
"exif-colorspace": "Kamar kalir",
"exif-componentsconfiguration": "Arti matan tiap kumpunin",
"exif-compressedbitsperpixel": "Muda kumprasi gambar",
- "exif-pixelydimension": "Lingai gambar",
- "exif-pixelxdimension": "Pancau gambar",
+ "exif-pixelxdimension": "Lingai gambar",
+ "exif-pixelydimension": "Pancau gambar",
"exif-usercomment": "Kumintar pamuruk",
"exif-relatedsoundfile": "Barkas suara bahubung",
"exif-datetimeoriginal": "Tanggal wan wayah paulahan data",
"category-media-header": "\"$1\" বিষয়শ্রেণীতে অন্তর্ভুক্ত মিডিয়া ফাইলগুলি",
"category-empty": "''এই বিষয়শ্রণীতে বর্তমানে কোন পাতা বা মিডিয়া ফাইল নেই।''",
"hidden-categories": "{{PLURAL:$1|লুকায়িত বিষয়শ্রেণী|লুকায়িত বিষয়শ্রেণীসমূহ}}",
- "hidden-category-category": "লà§\81à¦\95à§\8dà¦\95ায়িত বিষয়শà§\8dরà§\87ণà§\80সমà§\82হ",
+ "hidden-category-category": "লুকায়িত বিষয়শ্রেণীসমূহ",
"category-subcat-count": "{{PLURAL:$2|এই বিষয়শ্রেণীতে কেবলমাত্র নিচের উপবিষয়শ্রেণীটি আছে।|এই বিষয়শ্রেণীতে অন্তর্ভুক্ত মোট $2টি উপবিষয়শ্রেণীর মধ্যে {{PLURAL:$1|টি উপবিষয়শ্রেণী|$1টি উপবিষয়শ্রেণী}} নিচে দেখানো হয়েছে।}}",
"category-subcat-count-limited": "এই বিষয়শ্রেণীতে নিচের {{PLURAL:$1|টি উপবিষয়শ্রেণী|$1টি উপবিষয়শ্রেণী আছে}}।",
"category-article-count": "{{PLURAL:$2|এই বিষয়শ্রেণীতে কেবল নিচের পাতাটি আছে।|এই বিষয়শ্রেণীতে অন্তর্ভুক্ত মোট $2টি পাতার মধ্যে {{PLURAL:$1|টি পাতা|$1টি পাতা}} নিচে দেখানো হল।}}",
"exif-colorspace": "রঙ জগৎ",
"exif-componentsconfiguration": "প্রতিটি উপাদানের অর্থ",
"exif-compressedbitsperpixel": "ছবি সংকোচন মোড",
- "exif-pixelydimension": "চিত্রের প্রস্থ",
- "exif-pixelxdimension": "চিত্রের উচ্চতা",
+ "exif-pixelxdimension": "চিত্রের প্রস্থ",
+ "exif-pixelydimension": "চিত্রের উচ্চতা",
"exif-usercomment": "ব্যবহারকারীর মন্তব্য",
"exif-relatedsoundfile": "সংশ্লিষ্ট অডিও ফাইল",
"exif-datetimeoriginal": "উপাত্ত উৎপাদনের তারিখ ও সময়",
"redirect-not-exists": "মান পাওয়া যায়নি",
"fileduplicatesearch": "সদৃশ ফাইলের জন্য অনুসন্ধান",
"fileduplicatesearch-summary": "হ্যাশ ভ্যালুর ওর ভিত্তি করে একই ছবিগুলো খুঁজুন।",
- "fileduplicatesearch-legend": "অনুলিপির জন্য অনুসন্ধান",
"fileduplicatesearch-filename": "ফাইলনাম:",
"fileduplicatesearch-submit": "অনুসন্ধান",
"fileduplicatesearch-info": "$1 × $2 পিক্সেল<br />ফাইলের আকার: $3<br />এমআইএমই প্রকার: $4",
"exif-colorspace": "Lec'h al livioù",
"exif-componentsconfiguration": "Talvoudegezh pep parzh",
"exif-compressedbitsperpixel": "Doare gwaskañ ar skeudenn",
- "exif-pixelydimension": "Ledander ar skeudenn",
- "exif-pixelxdimension": "Sav ar skeudenn",
+ "exif-pixelxdimension": "Ledander ar skeudenn",
+ "exif-pixelydimension": "Sav ar skeudenn",
"exif-usercomment": "Evezhiadennoù",
"exif-relatedsoundfile": "Restr son stag",
"exif-datetimeoriginal": "Deiziad hag eur ar sevel roadoù",
"exif-colorspace": "Prostor boje",
"exif-componentsconfiguration": "Značenje svake komponente",
"exif-compressedbitsperpixel": "Način kompresije slike",
- "exif-pixelydimension": "Širina slike",
- "exif-pixelxdimension": "Visina slike",
+ "exif-pixelxdimension": "Širina slike",
+ "exif-pixelydimension": "Visina slike",
"exif-usercomment": "Korisnički komentari",
"exif-relatedsoundfile": "Povezana zvučna datoteka",
"exif-datetimeoriginal": "Datum i vrijeme generisanja podataka",
"exif-colorspace": "Espai de color",
"exif-componentsconfiguration": "Significat de cada component",
"exif-compressedbitsperpixel": "Mode de compressió d'imatge",
- "exif-pixelydimension": "Amplada de la imatge",
- "exif-pixelxdimension": "Alçada de la imatge",
+ "exif-pixelxdimension": "Amplada de la imatge",
+ "exif-pixelydimension": "Alçada de la imatge",
"exif-usercomment": "Comentaris de l'usuari",
"exif-relatedsoundfile": "Fitxer d'àudio relacionat",
"exif-datetimeoriginal": "Dia i hora de generació de les dades",
"redirect-not-exists": "No s'ha trobat el valor",
"fileduplicatesearch": "Cerca fitxers duplicats",
"fileduplicatesearch-summary": "Cerca fitxers duplicats d'acord amb el seu valor de resum.",
- "fileduplicatesearch-legend": "Cerca duplicats",
"fileduplicatesearch-filename": "Nom del fitxer:",
"fileduplicatesearch-submit": "Cerca",
"fileduplicatesearch-info": "$1 × $2 píxels<br />Mida del fitxer: $3<br />Tipus MIME: $4",
"log-action-filter-patrol": "Tipus de patrullatge:",
"log-action-filter-protect": "Tipus de protecció:",
"log-action-filter-upload": "Tipus de càrrega:",
+ "log-action-filter-all": "Tota",
+ "log-action-filter-block-block": "Bloca",
+ "log-action-filter-block-reblock": "Bloca la modificació",
+ "log-action-filter-block-unblock": "Desbloca",
+ "log-action-filter-delete-delete": "Supressió de pàgines",
+ "log-action-filter-delete-restore": "Restauració de pàgines",
+ "log-action-filter-delete-event": "Registre de supressió",
+ "log-action-filter-delete-revision": "Supressió de revisions",
+ "log-action-filter-patrol-patrol": "Patrullatge manual",
+ "log-action-filter-patrol-autopatrol": "Patrullatge automàtic",
"log-action-filter-protect-protect": "Protecció",
"log-action-filter-protect-modify": "Modificació de la protecció",
"log-action-filter-protect-unprotect": "Desprotecció",
"exif-colorspace": "Беснашан хьал",
"exif-componentsconfiguration": "Бесара компонентин конфигураци",
"exif-compressedbitsperpixel": "Бесан кIоргалла дацдина чул тӀехьа",
- "exif-pixelydimension": "Суьртан шоралла",
- "exif-pixelxdimension": "Суьртан локхалла",
+ "exif-pixelxdimension": "Суьртан шоралла",
+ "exif-pixelydimension": "Суьртан локхалла",
"exif-usercomment": "Кхин тӀе къамел",
"exif-relatedsoundfile": "Къамелан аьзнийн файл",
"exif-datetimeoriginal": "Дуьххьарлера терахь а хан",
"exif-artist": "نووسەر",
"exif-exifversion": "وەشانی exif",
"exif-colorspace": "بۆشایی رهنگ",
- "exif-pixelydimension": "پانی وێنە",
- "exif-pixelxdimension": "بەرزی وێنە",
+ "exif-pixelxdimension": "پانی وێنە",
+ "exif-pixelydimension": "بەرزی وێنە",
"exif-usercomment": "بۆچوونەکانی بەکارھێنەر",
"exif-relatedsoundfile": "فایلی دهنگی لێکچوو",
"exif-datetimeoriginal": "ڕێکەوت و کاتی بەرھەمھێنانی داتا",
"redirect-file": "ناوی پەڕگە",
"fileduplicatesearch": "گەڕان بۆ پەڕگە دووپات کراوەکان",
"fileduplicatesearch-summary": "گەڕان بۆ پەڕگە دووبارەکراوەکان لەسەر بنەمای نرخی hash.",
- "fileduplicatesearch-legend": "گەڕان بۆ دووبارەکردنێک",
"fileduplicatesearch-filename": "ناوی پەرگە:",
"fileduplicatesearch-submit": "گەڕان",
"fileduplicatesearch-info": "$1 × $2 پیکسەل<br />قەبارەی پەڕگە: $3<br />MIME جۆری: $4",
"exif-colorspace": "Barevný prostor",
"exif-componentsconfiguration": "Význam jednotlivých složek",
"exif-compressedbitsperpixel": "Komprimační režim",
- "exif-pixelydimension": "Šířka obrázku",
- "exif-pixelxdimension": "Výška obrázku",
+ "exif-pixelxdimension": "Šířka obrázku",
+ "exif-pixelydimension": "Výška obrázku",
"exif-usercomment": "Uživatelské poznámky",
"exif-relatedsoundfile": "Související zvukový soubor",
"exif-datetimeoriginal": "Datum a čas pořízení obrázku",
"redirect-not-exists": "Hodnota nenalezena",
"fileduplicatesearch": "Hledání duplicitních souborů",
"fileduplicatesearch-summary": "Hledání duplicitních souborů podle jejich hašů.",
- "fileduplicatesearch-legend": "Hledání duplikátů",
"fileduplicatesearch-filename": "Jméno souboru:",
"fileduplicatesearch-submit": "Hledat",
"fileduplicatesearch-info": "(rozměr: $1 × $2 pixelů, velikost souboru: $3, MIME typ: $4)",
"exif-colorspace": "Gofod lliw",
"exif-componentsconfiguration": "Ystyr pob cydran",
"exif-compressedbitsperpixel": "Modd cywasgu delwedd",
- "exif-pixelydimension": "Lled y ddelwedd",
- "exif-pixelxdimension": "Uchder y ddelwedd",
+ "exif-pixelxdimension": "Lled y ddelwedd",
+ "exif-pixelydimension": "Uchder y ddelwedd",
"exif-usercomment": "Sylwadau'r defnyddiwr",
"exif-relatedsoundfile": "Ffeil sain gysylltiedig",
"exif-datetimeoriginal": "Dyddiad ac amser y cynhyrchwyd y data",
"exif-colorspace": "Farverum",
"exif-componentsconfiguration": "Betydning af enkelte komponenter",
"exif-compressedbitsperpixel": "Komprimerede bits pr. pixel",
- "exif-pixelydimension": "Billedbredde",
- "exif-pixelxdimension": "Billedhøjde",
+ "exif-pixelxdimension": "Billedbredde",
+ "exif-pixelydimension": "Billedhøjde",
"exif-usercomment": "Brugerkommentarer",
"exif-relatedsoundfile": "Tilhørende lydfil",
"exif-datetimeoriginal": "Optagelsestidspunkt",
"exif-colorspace": "Farbraum",
"exif-componentsconfiguration": "Bedeutung einzelner Komponenten",
"exif-compressedbitsperpixel": "Komprimierte Bits pro Pixel",
- "exif-pixelydimension": "Bildbreite",
- "exif-pixelxdimension": "Bildhöhe",
+ "exif-pixelxdimension": "Bildbreite",
+ "exif-pixelydimension": "Bildhöhe",
"exif-usercomment": "Benutzerkommentare",
"exif-relatedsoundfile": "Zugehörige Tondatei",
"exif-datetimeoriginal": "Erfassungszeitpunkt",
"redirect-not-exists": "Der Wert wurde nicht gefunden",
"fileduplicatesearch": "Dateiduplikatsuche",
"fileduplicatesearch-summary": "Suche nach Dateiduplikaten auf Basis ihres Hashwertes.",
- "fileduplicatesearch-legend": "Suche nach Duplikaten",
"fileduplicatesearch-filename": "Dateiname:",
"fileduplicatesearch-submit": "Suchen",
"fileduplicatesearch-info": "$1 × $2 Pixel<br />Dateigröße: $3<br />MIME-Typ: $4",
"exif-colorspace": "Cayê rengi",
"exif-componentsconfiguration": "manayê qisimê hemi",
"exif-compressedbitsperpixel": "Modê komprasyonê resimi",
- "exif-pixelydimension": "Herayeya resimi",
- "exif-pixelxdimension": "Berzeya resimi",
+ "exif-pixelxdimension": "Herayeya resimi",
+ "exif-pixelydimension": "Berzeya resimi",
"exif-usercomment": "Mışewreyê karberi",
"exif-relatedsoundfile": "Derhekê dosya yê vengi",
"exif-datetimeoriginal": "Zeman u tarixê data varaziyayişi",
"exif-colorspace": "Barwowy rum",
"exif-componentsconfiguration": "Wóznam jadnotliwych komponentow",
"exif-compressedbitsperpixel": "Kompriměrowane bity na piksel",
- "exif-pixelydimension": "Šyrokosć wobraza",
- "exif-pixelxdimension": "Wusokosć wobraza",
+ "exif-pixelxdimension": "Šyrokosć wobraza",
+ "exif-pixelydimension": "Wusokosć wobraza",
"exif-usercomment": "Komentary wužywarja",
"exif-relatedsoundfile": "Pśisłušna zukowa dataja",
"exif-datetimeoriginal": "Datum a cas wutwórjenja datow",
"exif-colorspace": "Χρωματική περιοχή",
"exif-componentsconfiguration": "Νόημα του κάθε στοιχείου",
"exif-compressedbitsperpixel": "Κατάσταση συμπίεσης εικόνας",
- "exif-pixelydimension": "Πλάτος εικόνας",
- "exif-pixelxdimension": "Ύψος εικόνας",
+ "exif-pixelxdimension": "Πλάτος εικόνας",
+ "exif-pixelydimension": "Ύψος εικόνας",
"exif-usercomment": "Σχόλια χρήστη",
"exif-relatedsoundfile": "Σχετικό αρχείο ήχου",
"exif-datetimeoriginal": "Ημερομηνία και ώρα της παραγωγής ψηφιακών δεδομένων",
"exif-colorspace": "Color space",
"exif-componentsconfiguration": "Meaning of each component",
"exif-compressedbitsperpixel": "Image compression mode",
- "exif-pixelydimension": "Image width",
- "exif-pixelxdimension": "Image height",
+ "exif-pixelxdimension": "Image width",
+ "exif-pixelydimension": "Image height",
"exif-usercomment": "User comments",
"exif-relatedsoundfile": "Related audio file",
"exif-datetimeoriginal": "Date and time of data generation",
"confirmemail_body_set": "Someone, probably you, from IP address $1,\nhas set the email address of the account \"$2\" to this address on {{SITENAME}}.\n\nTo confirm that this account really does belong to you and activate\nemail features on {{SITENAME}}, open this link in your browser:\n\n$3\n\nIf the account does *not* belong to you, follow this link\nto cancel the email address confirmation:\n\n$5\n\nThis confirmation code will expire at $4.",
"confirmemail_invalidated": "Email address confirmation canceled",
"invalidateemail": "Cancel email confirmation",
+ "notificationemail_subject_changed": "{{SITENAME}} registered email address has been changed",
+ "notificationemail_subject_removed": "{{SITENAME}} registered email address has been removed",
+ "notificationemail_body_changed": "Someone, probably you, from IP address $1,\nhas changed the email address of the account \"$2\" to \"$3\" on {{SITENAME}}.\n\nIf this was not you, contact a site administrator immediately.",
+ "notificationemail_body_removed": "Someone, probably you, from IP address $1,\nhas removed the email address of the account \"$2\" on {{SITENAME}}.\n\nIf this was not you, contact a site administrator immediately.",
"scarytranscludedisabled": "[Interwiki transcluding is disabled]",
"scarytranscludefailed": "[Template fetch failed for $1]",
"scarytranscludefailed-httpstatus": "[Template fetch failed for $1: HTTP $2]",
"exif-colorspace": "Kolor-spaco",
"exif-componentsconfiguration": "Signifo de ĉiu kompono",
"exif-compressedbitsperpixel": "Reĝimo de bilda densigado",
- "exif-pixelydimension": "Larĝeco de bildo",
- "exif-pixelxdimension": "Alteco de bildo",
+ "exif-pixelxdimension": "Larĝeco de bildo",
+ "exif-pixelydimension": "Alteco de bildo",
"exif-usercomment": "Komentoj de uzanto",
"exif-relatedsoundfile": "Rilata son-dosiero",
"exif-datetimeoriginal": "Dato kaj tempo de datuma generado",
"redirect-not-exists": "Valoro ne trovita",
"fileduplicatesearch": "Serĉu duplikatajn dosierojn",
"fileduplicatesearch-summary": "Serĉi duplikatajn dosierojn bazite de haketvaloro.",
- "fileduplicatesearch-legend": "Serĉi duplikaton",
"fileduplicatesearch-filename": "Dosiernomo:",
"fileduplicatesearch-submit": "Serĉi",
"fileduplicatesearch-info": "$1 × $2 rastrumero<br />Dosiera pezo: $3<br />MIME-tipo: $4",
"exif-colorspace": "Espacio de color",
"exif-componentsconfiguration": "Significado de cada componente",
"exif-compressedbitsperpixel": "Modo de compresión de la imagen",
- "exif-pixelydimension": "Ancho de la imagen",
- "exif-pixelxdimension": "Altura de la imagen",
+ "exif-pixelxdimension": "Ancho de la imagen",
+ "exif-pixelydimension": "Altura de la imagen",
"exif-usercomment": "Comentarios de usuario",
"exif-relatedsoundfile": "Archivo de audio relacionado",
"exif-datetimeoriginal": "Fecha y hora de la generación de los datos",
"redirect-not-exists": "No se encontró el valor",
"fileduplicatesearch": "Búsqueda de archivos duplicados",
"fileduplicatesearch-summary": "Búsqueda de archivos duplicados en base a su valor hash.",
- "fileduplicatesearch-legend": "Busca duplicados",
"fileduplicatesearch-filename": "Nombre de archivo:",
"fileduplicatesearch-submit": "Buscar",
"fileduplicatesearch-info": "$1 × $2 píxeles<br />Tamaño: $3<br />Tipo MIME: $4",
"exif-colorspace": "Värviruum",
"exif-componentsconfiguration": "Iga komponendi tähendus",
"exif-compressedbitsperpixel": "Pildi pakkimise meetod",
- "exif-pixelydimension": "Pildi laius",
- "exif-pixelxdimension": "Pildi kõrgus",
+ "exif-pixelxdimension": "Pildi laius",
+ "exif-pixelydimension": "Pildi kõrgus",
"exif-usercomment": "Kasutaja kommentaarid",
"exif-relatedsoundfile": "Seotud helifail",
"exif-datetimeoriginal": "Andmete loomise kuupäev ja kellaaeg",
"exif-colorspace": "Kolore tartea",
"exif-componentsconfiguration": "Osagai bakoitzaren esanahia",
"exif-compressedbitsperpixel": "Irudi konpresio mota",
- "exif-pixelydimension": "Irudiaren zabalera",
- "exif-pixelxdimension": "Irudiaren altuera",
+ "exif-pixelxdimension": "Irudiaren zabalera",
+ "exif-pixelydimension": "Irudiaren altuera",
"exif-usercomment": "Erabiltzailearen iruzkinak",
"exif-relatedsoundfile": "Harremanetan dagoen audio fitxategia",
"exif-datetimeoriginal": "Datuen sorreraren data eta ordua",
"redirect-not-exists": "Ez da baliorik aurkitu",
"fileduplicatesearch": "Artxibo bikoiztuen bilaketa",
"fileduplicatesearch-summary": "Bikoiztutako fitxategiak bilatu bere hash balioaren arabera.",
- "fileduplicatesearch-legend": "Duplikatu bat bilatu",
"fileduplicatesearch-filename": "Fitxategi izena:",
"fileduplicatesearch-submit": "Bilaketa",
"fileduplicatesearch-info": "$1 × $2 pixel<br />Fitxategiaren tamaina: $3<br />MIME mota: $4",
"exif-colorspace": "Espaciu e colol",
"exif-componentsconfiguration": "Senificau e ca componenti",
"exif-compressedbitsperpixel": "Mó de compresión la imahin",
- "exif-pixelydimension": "Anchón la imahin premitiu",
- "exif-pixelxdimension": "Artu la imahin premitiu",
+ "exif-pixelxdimension": "Anchón la imahin premitiu",
+ "exif-pixelydimension": "Artu la imahin premitiu",
"exif-usercomment": "Comentárius del usuáriu",
"exif-relatedsoundfile": "Archivu d'audiu relacionau",
"exif-datetimeoriginal": "Fecha i ora la heneración los datus",
"exif-colorspace": "فضای رنگی",
"exif-componentsconfiguration": "معنی هر یک از مؤلفهها",
"exif-compressedbitsperpixel": "حالت فشردهسازی تصویر",
- "exif-pixelydimension": "پهنای تصویر",
- "exif-pixelxdimension": "بلندی تصویر",
+ "exif-pixelxdimension": "پهنای تصویر",
+ "exif-pixelydimension": "بلندی تصویر",
"exif-usercomment": "توضیحات کاربر",
"exif-relatedsoundfile": "پروندهٔ صوتی مربوط",
"exif-datetimeoriginal": "تاریخ و زمان تولید دادهها",
"redirect-not-exists": "مقدار پیدا نشد",
"fileduplicatesearch": "جستجو برای پروندههای تکراری",
"fileduplicatesearch-summary": "جستجو برای پروندههای تکراری بر اساس مقدار درهمشدهٔ آنها صورت میگیرد.",
- "fileduplicatesearch-legend": "جستجوی موارد تکراری",
"fileduplicatesearch-filename": "نام پرونده:",
"fileduplicatesearch-submit": "جستجو",
"fileduplicatesearch-info": "<span dir=\"ltr\">$1 × $2</span> پیکسل<br />اندازهٔ پرونده: $3<br />نوع MIME: $4",
"exif-colorspace": "Väriavaruus",
"exif-componentsconfiguration": "Kunkin komponentin määritelmä",
"exif-compressedbitsperpixel": "Kuvan pakkaustapa",
- "exif-pixelydimension": "Kuvan leveys",
- "exif-pixelxdimension": "Kuvan korkeus",
+ "exif-pixelxdimension": "Kuvan leveys",
+ "exif-pixelydimension": "Kuvan korkeus",
"exif-usercomment": "Käyttäjän kommentit",
"exif-relatedsoundfile": "Liitetty äänitiedosto",
"exif-datetimeoriginal": "Luontipäivämäärä",
"redirect-not-exists": "Arvoa ei löytynyt",
"fileduplicatesearch": "Kaksoiskappaleiden haku",
"fileduplicatesearch-summary": "Etsii tiedoston kaksoiskappaleita hajautusarvon perusteella.",
- "fileduplicatesearch-legend": "Etsi kaksoiskappaleita",
"fileduplicatesearch-filename": "Tiedostonimi",
"fileduplicatesearch-submit": "Etsi",
"fileduplicatesearch-info": "$1 × $2 kuvapistettä<br />Tiedostokoko: $3<br />MIME-tyyppi: $4",
"recentchanges-page-added-to-category": "[[:$1]] ajouté à la catégorie",
"recentchanges-page-added-to-category-bundled": "[[:$1]] et [[Special:WhatLinksHere/$1|{{PLURAL:$2|une page ajoutée|$2 pages ajoutées}}]] à la catégorie",
"recentchanges-page-removed-from-category": "[[:$1]] supprimé de la catégorie",
- "recentchanges-page-removed-from-category-bundled": "[[:$1]] et [[Special:WhatLinksHere/$1|{{PLURAL:$2|une page|$2 pages}}]] {{PLURAL:$2|retirée|retirées}} de la catégorie",
+ "recentchanges-page-removed-from-category-bundled": "[[:$1]] et [[Special:WhatLinksHere/$1|{{PLURAL:$2|une page retirée|$2 pages retirées}}]] de la catégorie",
"autochange-username": "Modification automatique de MediaWiki",
"upload": "Importer un fichier",
"uploadbtn": "Importer le fichier",
"exif-colorspace": "Espace colorimétrique",
"exif-componentsconfiguration": "Signification de chaque composante",
"exif-compressedbitsperpixel": "Mode de compression de l'image",
- "exif-pixelydimension": "Largeur de l'image",
- "exif-pixelxdimension": "Hauteur de l'image",
+ "exif-pixelxdimension": "Largeur de l'image",
+ "exif-pixelydimension": "Hauteur de l'image",
"exif-usercomment": "Commentaires de l'utilisateur",
"exif-relatedsoundfile": "Fichier audio associé",
"exif-datetimeoriginal": "Date de la prise originelle",
"redirect-not-exists": "Valeur non trouvée",
"fileduplicatesearch": "Recherche de doublons",
"fileduplicatesearch-summary": "Recherche des copies de fichiers identiques d'après leur empreinte de hachage.",
- "fileduplicatesearch-legend": "Rechercher un doublon",
"fileduplicatesearch-filename": "Nom du fichier :",
"fileduplicatesearch-submit": "Rechercher",
"fileduplicatesearch-info": "$1 × $2 pixels<br />Taille du fichier : $3<br />Type MIME : $4",
"log-action-filter-delete": "Type de suppression :",
"log-action-filter-patrol": "Type de patrouille :",
"log-action-filter-protect": "Type de protection :",
- "log-action-filter-upload": "Type de téléchargement:",
+ "log-action-filter-upload": "Type de téléversement :",
"log-action-filter-all": "Tout",
- "log-action-filter-block-block": "Bloc",
- "log-action-filter-block-reblock": "Modification de bloc",
+ "log-action-filter-block-block": "Blocage",
+ "log-action-filter-block-reblock": "Modification de blocage",
"log-action-filter-block-unblock": "Débloquer",
"log-action-filter-delete-delete": "Suppression de pages",
"log-action-filter-delete-restore": "Restauration de page",
"log-action-filter-delete-event": "Suppression du journal",
- "log-action-filter-delete-revision": "Supression de révison",
+ "log-action-filter-delete-revision": "Suppression de révison",
"log-action-filter-patrol-patrol": "Patrouille manuelle",
"log-action-filter-patrol-autopatrol": "Patrouille automatique",
"log-action-filter-protect-protect": "Protection",
"log-action-filter-protect-modify": "Modification de la protection",
"log-action-filter-protect-unprotect": "Levée de la protection",
"log-action-filter-upload-upload": "Nouveau téléversement",
- "log-action-filter-upload-overwrite": "Reitérer le téléversement"
+ "log-action-filter-upload-overwrite": "Réitérer le téléversement"
}
"exif-colorspace": "Èspâço colorimètrico",
"exif-componentsconfiguration": "Significacion de châque composenta",
"exif-compressedbitsperpixel": "Fôrma de comprèssion de l’émâge",
- "exif-pixelydimension": "Largior de l’émâge",
- "exif-pixelxdimension": "Hôtior de l’émâge",
+ "exif-pixelxdimension": "Largior de l’émâge",
+ "exif-pixelydimension": "Hôtior de l’émâge",
"exif-usercomment": "Comentèros de l’utilisator",
"exif-relatedsoundfile": "Fichiér ôdiô associyê",
"exif-datetimeoriginal": "Dâta et hora de la prêsa originâla",
"exif-colorspace": "Klöörenrüm",
"exif-componentsconfiguration": "Enkelt komponenten",
"exif-compressedbitsperpixel": "Komprimiaret bits per pixel",
- "exif-pixelydimension": "Bilbreetje",
- "exif-pixelxdimension": "Bilhööchde",
+ "exif-pixelxdimension": "Bilbreetje",
+ "exif-pixelydimension": "Bilhööchde",
"exif-usercomment": "Brüker komentaaren",
"exif-relatedsoundfile": "Ferbünjen tuundatei",
"exif-datetimeoriginal": "Dootem an klooktidj faan't knipsin",
"exif-exifversion": "Exif-ferzje",
"exif-colorspace": "Kleurromte",
"exif-compressedbitsperpixel": "Ofbylding kompresjemetoade",
- "exif-pixelydimension": "Ofbyldingsbreedte",
- "exif-pixelxdimension": "Ofbyldingshichte",
+ "exif-pixelxdimension": "Ofbyldingsbreedte",
+ "exif-pixelydimension": "Ofbyldingshichte",
"exif-usercomment": "Opmerkings",
"exif-relatedsoundfile": "Besibbe audiotriem",
"exif-datetimeoriginal": "Tiidstip gegevensoanmaak",
"redirect-file": "Triemnamme",
"redirect-not-exists": "Wearde net fûn",
"fileduplicatesearch": "Sykje op duplikaten",
- "fileduplicatesearch-legend": "Sykje op duplikaten",
"fileduplicatesearch-filename": "Triemnamme:",
"fileduplicatesearch-submit": "Sykje",
"fileduplicatesearch-info": "$1 × $2 pixel<br />Triemgrutte: $3<br />MIME-type: $4",
"exif-colorspace": "Dathspás",
"exif-componentsconfiguration": "Ciall le gach giota",
"exif-compressedbitsperpixel": "Modh chomhbhrú na n-íomhánna",
- "exif-pixelydimension": "Leithead bailí don íomhá",
- "exif-pixelxdimension": "Airde bailí don íomhá",
+ "exif-pixelxdimension": "Leithead bailí don íomhá",
+ "exif-pixelydimension": "Airde bailí don íomhá",
"exif-usercomment": "Nótaí an úsáideora",
"exif-relatedsoundfile": "comhad gaolmhara fuaime",
"exif-datetimeoriginal": "Dáta agus am ghiniúint na sonraí",
"exif-colorspace": "颜色空间",
"exif-componentsconfiguration": "每部分𠮶意思",
"exif-compressedbitsperpixel": "图像压缩模式",
- "exif-pixelydimension": "有效图像𠮶阔",
- "exif-pixelxdimension": "有效图像𠮶高",
+ "exif-pixelxdimension": "有效图像𠮶阔",
+ "exif-pixelydimension": "有效图像𠮶高",
"exif-usercomment": "用户摘要",
"exif-relatedsoundfile": "相关𠮶声气资料",
"exif-datetimeoriginal": "资料创作时间",
"exif-colorspace": "顏色空間",
"exif-componentsconfiguration": "每部分嗰意思",
"exif-compressedbitsperpixel": "圖像壓縮模式",
- "exif-pixelydimension": "有效圖像嗰闊",
- "exif-pixelxdimension": "有效圖像嗰高",
+ "exif-pixelxdimension": "有效圖像嗰闊",
+ "exif-pixelydimension": "有效圖像嗰高",
"exif-usercomment": "用戶摘要",
"exif-relatedsoundfile": "相關嗰聲氣資料",
"exif-datetimeoriginal": "資料創作時間",
"exif-colorspace": "Spàs datha",
"exif-componentsconfiguration": "Ciall aig gach co-phàirt",
"exif-compressedbitsperpixel": "Modh dùmhlachd-bhreacaidh an deilbh",
- "exif-pixelydimension": "Leud an deilbh",
- "exif-pixelxdimension": "Àirde an deilbh",
+ "exif-pixelxdimension": "Leud an deilbh",
+ "exif-pixelydimension": "Àirde an deilbh",
"exif-usercomment": "Beachdan nan cleachdaichean",
"exif-relatedsoundfile": "Faidhle fuaime co-cheangailte ris",
"exif-datetimeoriginal": "Ceann-là 's àm a chaidh an dàta a chruthachadh",
"exif-colorspace": "Espazo de cor",
"exif-componentsconfiguration": "Significado de cada compoñente",
"exif-compressedbitsperpixel": "Modo de compresión da imaxe",
- "exif-pixelydimension": "Ancho da imaxe",
- "exif-pixelxdimension": "Altura da imaxe",
+ "exif-pixelxdimension": "Ancho da imaxe",
+ "exif-pixelydimension": "Altura da imaxe",
"exif-usercomment": "Comentarios do usuario",
"exif-relatedsoundfile": "Ficheiro de son relacionado",
"exif-datetimeoriginal": "Data e hora de xeración do ficheiro",
"redirect-not-exists": "Non se atopou o valor",
"fileduplicatesearch": "Procurar ficheiros duplicados",
"fileduplicatesearch-summary": "Procurar ficheiros duplicados a partir do valor de <i>hash</i> (un mecanismo de comprobación).",
- "fileduplicatesearch-legend": "Procurar un duplicado",
"fileduplicatesearch-filename": "Nome do ficheiro:",
"fileduplicatesearch-submit": "Procurar",
"fileduplicatesearch-info": "$1 × $2 píxeles<br />Tamaño do ficheiro: $3<br />Tipo MIME: $4",
"exif-colorspace": "Χρωματικὸς χῶρος",
"exif-componentsconfiguration": "Νόημα ἑκάστης συνιστώσης",
"exif-compressedbitsperpixel": "Τρόπος συμπιέσεως εἰκόνος",
- "exif-pixelydimension": "Πλάτος εἰκόνος",
- "exif-pixelxdimension": "Ὕψος εἰκόνος",
+ "exif-pixelxdimension": "Πλάτος εἰκόνος",
+ "exif-pixelydimension": "Ὕψος εἰκόνος",
"exif-usercomment": "Σχόλια χρωμένου",
"exif-relatedsoundfile": "Σχετιζόμενον ἀρχεῖον ἤχου",
"exif-datetimeoriginal": "Χρονολογία καὶ ὥρα παραγωγῆς δεδομένων",
"exif-colorspace": "Farbruum",
"exif-componentsconfiguration": "Bedytig vu einzelne Komponente",
"exif-compressedbitsperpixel": "Komprimierti Bit pro Pixel",
- "exif-pixelydimension": "Bildbreiti",
- "exif-pixelxdimension": "Bildhechi",
+ "exif-pixelxdimension": "Bildbreiti",
+ "exif-pixelydimension": "Bildhechi",
"exif-usercomment": "Benutzerkommentar",
"exif-relatedsoundfile": "Zuegherigi Tondatei",
"exif-datetimeoriginal": "Erfassigszytpunkt",
"exif-colorspace": "રંગ માટે જગ્યા",
"exif-componentsconfiguration": "દરેક ભાગનો અર્થ",
"exif-compressedbitsperpixel": "ચિત્ર સરખામણી મોડ",
- "exif-pixelydimension": "ચિત્ર પહોળાઇ",
- "exif-pixelxdimension": "ચિત્રની ઊઁચાઈ",
+ "exif-pixelxdimension": "ચિત્ર પહોળાઇ",
+ "exif-pixelydimension": "ચિત્રની ઊઁચાઈ",
"exif-usercomment": "સભ્યની ટિપ્પણી",
"exif-relatedsoundfile": "સંબંધિત શ્રાવ્ય ફાઈલો",
"exif-datetimeoriginal": "નિર્મિતીનો સમય અને તારીખ",
"actionthrottled": "הפעולה הוגבלה",
"actionthrottledtext": "כאמצעי נגד שימוש לרעה, קיימת מגבלה על ביצוע פעולה זו פעמים רבות מדי בזמן קצר, וחרגת מהמגבלה הזאת.\nנא לנסות שוב בעוד מספר דקות.",
"protectedpagetext": "דף זה מוגן כדי למנוע עריכה ופעולות אחרות.",
- "viewsourcetext": "×\91×\90פשר×\95ת×\9a לצפות בטקסט המקור של הדף ולהעתיקו.",
+ "viewsourcetext": "×\91×\90פשר×\95ת×\9b×\9d לצפות בטקסט המקור של הדף ולהעתיקו.",
"viewyourtext": "באפשרותך לצפות בטקסט המקור של <strong>העריכות שלך</strong> בדף הזה ולהעתיקו.",
"protectedinterface": "דף זה הוא אחד מסדרת דפים המספקים הודעות מערכת לתוכנה באתר ויקי זה, ומוגן כדי למנוע השחתות.\nכדי להוסיף או לשנות תרגומים בכל אתרי הוויקי, אנא השתמשו ב־[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
"editinginterface": "<strong>אזהרה:</strong> הדף שאתם עורכים הוא אחד הדפים המספקים הודעות מערכת לתוכנה.\nשינויים בדף זה ישפיעו על תצוגת ממשק המשתמש של משתמשים אחרים באתר ויקי זה.",
"virus-badscanner": "הגדרות שגויות: סורק הווירוסים אינו ידוע: ''$1''",
"virus-scanfailed": "הסריקה נכשלה (קוד: $1)",
"virus-unknownscanner": "אנטי־וירוס בלתי ידוע:",
- "logouttext": "'''יצאתם זה עתה מהחשבון.'''\n\nשימו לב כי ייתכן שדפים אחדים ימשיכו להיות מוצגים כאילו אתם עדיין מחוברים לחשבון עד שתנקו את המטמון של הדפדפן שלכם.",
+ "logouttext": "<strong>יצאתם זה עתה מהחשבון.</strong>\n\nשימו לב כי ייתכן שדפים אחדים ימשיכו להיות מוצגים כאילו אתם עדיין מחוברים לחשבון עד שתנקו את המטמון של הדפדפן שלכם.",
"cannotlogoutnow-title": "לא ניתן לצאת מהחשבון עכשיו",
"cannotlogoutnow-text": "היציאה אינה אפשרית בעת שימוש ב{{GRAMMAR:תחילית|$1}}.",
"welcomeuser": "ברוך בואך, $1!",
"noarticletext": "אין כרגע טקסט בדף הזה.\nבאפשרותכם [[Special:Search/{{PAGENAME}}|לחפש את כותרת הדף]] בדפים אחרים,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} לחפש את הדף ביומנים],\nאו [{{fullurl:{{FULLPAGENAME}}|action=edit}} ליצור את הדף]</span>.",
"noarticletext-nopermission": "אין כרגע טקסט בדף הזה.\nבאפשרותכם [[Special:Search/{{PAGENAME}}|לחפש את כותרת הדף]] בדפים אחרים,\nאו <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} לחפש את הדף ביומנים]</span>,\nאך אינכם מורשים ליצור את הדף.",
"missing-revision": "גרסה #$1 של הדף \"{{FULLPAGENAME}}\" אינה קיימת.\n\nזה נגרם בדרך כלל על־ידי לחיצה על קישור ישן לגרסה קודמת של דף שנמחק.\nאפשר למצוא פרטים ב[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} יומן המחיקות].",
- "userpage-userdoesnotexist": "חשבון המשתמש \"$1\" אינו רשום.\nאנא בדקו אם ברצונכם ליצור/לערוך דף זה.",
+ "userpage-userdoesnotexist": "חשבון המשתמש \"$1\" אינו רשום.\nאנא בִּדקו אם ברצונכם ליצור/לערוך את הדף הזה.",
"userpage-userdoesnotexist-view": "חשבון המשתמש \"$1\" אינו רשום.",
"blocked-notice-logextract": "{{GENDER:$1|המשתמש הזה חסום|המשתמשת הזו חסומה}} כרגע.\nהפעולה האחרונה ביומן החסימות מוצגת להלן:",
"clearyourcache": "<strong>הערה:</strong> לאחר השמירה, ייתכן שתצטרכו לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.\n* <strong>פיירפוקס / ספארי:</strong> לחצו והחזיקו את המקש <em>Shift</em> בעת לחיצתכם על <strong>טעינה מחדש</strong> (Reload), או לחצו על צירוף המקשים <em>Ctrl-F5</em> או <em>Ctrl-R</em>‏ (<em><span dir=\"ltr\">⌘-R</span></em> במחשב מק)\n* <strong>גוגל כרום:</strong> לחצו על צירוף המקשים <em>Ctrl-Shift-R</em>‏ (<em><span dir=\"ltr\">⌘-Shift-R</span></em> במחשב מק)\n* <strong>אינטרנט אקספלורר:</strong> לחצו והחזיקו את המקש <em>Ctrl</em> בעת לחיצתכם על <strong>רענן</strong> (Refresh), או לחצו על צירוף המקשים <em>Ctrl-F5</em>\n* <strong>אופרה:</strong> נקו את המטמון ב־<em>Tools ← Preferences</em>",
- "usercssyoucanpreview": "'''עצה:''' השתמשו בלחצן \"{{int:showpreview}}\" כדי לבחון את גיליון ה־CSS החדש שלכם לפני השמירה.",
- "userjsyoucanpreview": "'''עצה:''' השתמשו בלחצן \"{{int:showpreview}}\" כדי לבחון את סקריפט ה־JavaScript החדש שלכם לפני השמירה.",
- "usercsspreview": "'''זכרו שזו רק תצוגה מקדימה של גיליון ה־CSS שלכם.'''\n'''הוא טרם נשמר!'''",
- "userjspreview": "'''זכרו שזו רק בדיקה/תצוגה מקדימה של סקריפט ה־JavaScript שלכם.'''\n'''הוא טרם נשמר!'''",
+ "usercssyoucanpreview": "<strong>עצה:</strong> השתמשו בכפתור \"{{int:showpreview}}\" כדי לבחון את גיליון ה־CSS החדש שלכם לפני השמירה.",
+ "userjsyoucanpreview": "<strong>עצה:</strong> השתמשו בכפתור \"{{int:showpreview}}\" כדי לבחון את תסריט ה־JavaScript החדש שלכם לפני השמירה.",
+ "usercsspreview": "<strong>זִכרו שזו רק תצוגה מקדימה של גיליון ה־CSS שלכם.\nהוא עדיין לא נשמר!</strong>",
+ "userjspreview": "<strong>זִכרו שזו רק בדיקה/תצוגה מקדימה של תסריט ה־JavaScript שלכם.\nהוא עדיין לא נשמר!</strong>",
"sitecsspreview": "'''זכרו שזו רק תצוגה מקדימה של גיליון ה־CSS הזה.'''\n'''הוא טרם נשמר!'''",
"sitejspreview": "'''זכרו שזו רק תצוגה מקדימה של קוד ה־JavaScript הזה.'''\n'''הוא טרם נשמר!'''",
"userinvalidcssjstitle": "'''אזהרה:''' העיצוב \"$1\" אינו קיים.\nדפי .css ו־.js מותאמים אישית משתמשים בכותרת עם אותיות קטנות – למשל, {{ns:user}}:דוגמה/vector.css ולא {{ns:user}}:דוגמה/Vector.css.",
"revdelete-success": "מצב התצוגה של הגרסה שׁוּנה.",
"revdelete-failure": "לא ניתן היה לשנות את מצב התצוגה של הגרסה:\n$1",
"logdelete-success": "מצב התצוגה של פעולת היומן שׁוּנה.",
- "logdelete-failure": "×\9c×\90 × ×\99ת×\9f ×\94×\99×\94 ×\9c×©× ×\95ת ×\90ת ×\9eצ×\91 ×\94תצ×\95×\92×\94 ש×\9c פע×\95×\9cת ×\94×\99×\95×\9e×\9f:\n$1",
+ "logdelete-failure": "לא ניתן היה לשנות את מצב התצוגה של היומן:\n$1",
"revdel-restore": "שינוי מצב התצוגה",
"pagehist": "היסטוריית הדף",
"deletedhist": "הגרסאות המחוקות",
"revdelete-show-no-access": "שגיאה בהצגת הפריט מתאריך $2, $1: פריט זה סומן כ\"מוגבל\".\nאין לך גישה אליו.",
"revdelete-modify-no-access": "שגיאה בשינוי הפריט מתאריך $2, $1: פריט זה סומן כ\"מוגבל\".\nאין לכם גישה אליו.",
"revdelete-modify-missing": "שגיאה בשינוי פריט מספר $1: הוא אינו נמצא בבסיס הנתונים!",
- "revdelete-no-change": "<strong>×\90×\96×\94ר×\94:</strong> ×\9cפר×\99×\98 ×\9eÖ¾$2, $1 ×\9b×\91ר ×\94×\99×\95 ×\90ת ×\94×\92×\93ר×\95ת ×\94תצ×\95×\92×\94 ש×\91×\99קשת.",
+ "revdelete-no-change": "<strong>אזהרה:</strong> לפריט מ־$2, $1 כבר היו הגדרות התצוגה שביקשת.",
"revdelete-concurrent-change": "שגיאה בשינוי הפריט מתאריך $2, $1: נראה שמצבו שונה על־ידי מישהו אחר בזמן שאתם ניסיתם לשנות אותו.\nאנא בדקו ביומנים.",
"revdelete-only-restricted": "שגיאה בהסתרת הפריט מתאריך $2, $1: אין באפשרותך להעלים פריטים ממפעילי המערכת מבלי לבחור גם באחת מאפשרויות הנראוּת האחרות.",
"revdelete-reason-dropdown": "* סיבות מחיקה נפוצות\n** הפרת זכויות יוצרים\n** תקציר עריכה או מידע אישי לא הולמים\n** שם משתמש לא הולם\n** מידע שעלול להיות לשון הרע",
"userrights-notallowed": "אין לך הרשאה להוסיף או להסיר הרשאות של משתמשים.",
"userrights-changeable-col": "קבוצות שבאפשרותכם לשנות",
"userrights-unchangeable-col": "קבוצות שאין באפשרותכם לשנות",
- "userrights-conflict": "התנגשות בין שינויי הרשאות משתמש! אנא בדקו את השינויים שלכם ואשרו אותם.",
+ "userrights-conflict": "התנגשות בין שינויי הרשאות משתמש! אנא בִּדקו את השינויים שלכם ואשרו אותם.",
"userrights-removed-self": "הסרת את הרשאות המשתמש של עצמך. לכן אין לך כעת אפשרות לגשת לדף זה.",
"group": "קבוצה:",
"group-user": "משתמשים",
"filerevert-badversion": "אין גרסה מקומית קודמת של הקובץ שהועלתה בתאריך המבוקש.",
"filedelete": "מחיקת $1",
"filedelete-legend": "מחיקת קובץ",
- "filedelete-intro": "אתם עומדים למחוק את הקובץ '''[[Media:$1|$1]]''' יחד עם כל ההיסטוריה שלו.",
+ "filedelete-intro": "אתם עומדים למחוק את הקובץ <strong>[[Media:$1|$1]]</strong> יחד עם כל היסטוריית הגרסאות שלו.",
"filedelete-intro-old": "אתם מוחקים את הגרסה של '''[[Media:$1|$1]]''' מ־[$4 $3, $2].",
"filedelete-comment": "סיבה:",
"filedelete-submit": "מחיקה",
"emailpagetext": "ניתן להשתמש בטופס כדי לשלוח הודעת דואר אלקטרוני {{GENDER:$1|למשתמש זה|למשתמשת זו}}.\nכתובת הדואר האלקטרוני שכתבת ב[[Special:Preferences|העדפות המשתמש שלך]] תופיע ככתובת שההודעה נשלחה ממנה, כדי לאפשר תגובה ישירה.",
"defemailsubject": "דוא\"ל מ{{grammar:תחילית|{{SITENAME}}}} מהמשתמש \"$1\"",
"usermaildisabled": "שליחת דוא\"ל למשתמשים מבוטלת",
- "usermaildisabledtext": "×\90×\99× ×\9b×\9d רש×\90ים לשלוח דואר אלקטרוני למשתמשים אחרים באתר זה",
+ "usermaildisabledtext": "×\90×\99× ×\9b×\9d ×\9e×\95רשים לשלוח דואר אלקטרוני למשתמשים אחרים באתר זה",
"noemailtitle": "אין כתובת דואר אלקטרוני",
"noemailtext": "משתמש זה לא הזין כתובת דואר אלקטרוני תקינה.",
"nowikiemailtext": "משתמש זה בחר שלא לקבל דואר אלקטרוני ממשתמשים אחרים.",
"usermessage-summary": "השארת הודעת מערכת.",
"usermessage-editor": "שולח הודעות המערכת",
"watchlist": "רשימת המעקב",
- "mywatchlist": "רשימת מעקב",
+ "mywatchlist": "רש×\99×\9eת ×\94×\9eעק×\91",
"watchlistfor2": "עבור $1 $2",
"nowatchlist": "אין דפים ברשימת המעקב.",
"watchlistanontext": "נדרשת כניסה לחשבון כדי לצפות או לערוך פריטים ברשימת המעקב.",
"wlshowhidemine": "עריכות שלי",
"wlshowhidecategorization": "סיווג דפים לקטגוריות",
"watchlist-options": "אפשרויות ברשימת המעקב",
- "watching": "בהוספה לרשימת המעקב…",
- "unwatching": "בהסרה מרשימת המעקב…",
+ "watching": "בהוספה לרשימת המעקב...",
+ "unwatching": "בהסרה מרשימת המעקב...",
"watcherrortext": "אירעה שגיאה בעת שינוי הגדרות רשימת המעקב של \"$1\".",
"enotif_reset": "סימון כל הדפים כאילו נצפו",
"enotif_impersonal_salutation": "משתמש ב{{GRAMMAR:תחילית|{{SITENAME}}}}",
"undelete-search-prefix": "הצגת דפים החל מ:",
"undelete-search-submit": "חיפוש",
"undelete-no-results": "לא נמצאו דפים תואמים בארכיון המחיקות.",
- "undelete-filename-mismatch": "ש×\97×\96×\95ר ×\92רסת ×\94ק×\95×\91×¥ ×\9e×\94ת×\90ר×\99×\9a $1 × ×\9bש×\9c: ש×\9d ק×\95×\91×¥ ×\9c×\90 ת×\95×\90×\9d",
- "undelete-bad-store-key": "ש×\97×\96×\95ר ×\92רסת ×\94ק×\95×\91×¥ ×\9e×\94ת×\90ר×\99×\9a $1 × ×\9bש×\9c: הקובץ היה חסר לפני המחיקה.",
+ "undelete-filename-mismatch": "×\9c×\90 × ×\99ת×\9f ×\9cש×\97×\96ר ×\90ת ×\92רסת ×\94ק×\95×\91×¥ ×\9eÖ¾$1: ש×\9d ×\94ק×\95×\91×¥ ×\9c×\90 ת×\95×\90×\9d.",
+ "undelete-bad-store-key": "×\9c×\90 × ×\99ת×\9f ×\9cש×\97×\96ר ×\90ת ×\92רסת ×\94ק×\95×\91×¥ ×\9eÖ¾$1: הקובץ היה חסר לפני המחיקה.",
"undelete-cleanup-error": "שגיאת בעת מחיקת קובץ הארכיון \"$1\" שאינו בשימוש.",
"undelete-missing-filearchive": "שחזור קובץ הארכיון שמספרו $1 נכשל כיוון שהוא אינו בבסיס הנתונים. ייתכן שהוא כבר שוחזר.",
"undelete-error": "שגיאה בשחזור דף",
"whatlinkshere-submit": "הצגה",
"autoblockid": "חסימה אוטומטית #$1",
"block": "חסימת משתמש",
- "unblock": "שחרור משתמש",
+ "unblock": "ש×\97ר×\95ר ×\97ס×\99×\9e×\94 ש×\9c ×\9eשת×\9eש",
"blockip": "חסימת {{GENDER:$1|משתמש|משתמשת}}",
"blockip-legend": "חסימת משתמש",
"blockiptext": "השתמשו בטופס שלהלן כדי לחסום את הרשאות הכתיבה מכתובת IP או משתמש מסוימים.\nחסימות כאלה צריכות להתבצע רק כדי למנוע השחתה, ובהתאם ל[[{{MediaWiki:Policy-url}}|נהלים]].\nאנא מלאו את הסיבה הפרטנית לחסימה להלן (לדוגמה, באמצעות ציון דפים מסוימים שהשחית המשתמש).\nבאפשרותכם לחסום טווחי כתובות IP באמצעות תחביר [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR]; הטווח הגדול ביותר שניתן לחסום הוא <span dir=\"ltr\">/$1</span> עבור IPv4 ו־<span dir=\"ltr\">/$2</span> עבור IPv6.",
"blocklogentry": "חסם את [[$1]] למשך $2 $3",
"reblock-logentry": "שינה את הגדרות החסימה של [[$1]] עם זמן פקיעה של $2 $3",
"blocklogtext": "זהו יומן פעולות החסימה והשחרור של משתמשים.\nכתובות IP שנחסמו אוטומטית אינן מופיעות.\nראו גם את [[Special:BlockList|רשימת החסומים]] לרשימה של החרמות וחסימות פעילות כעת.",
- "unblocklogentry": "שחרר את $1",
+ "unblocklogentry": "שחרר את החסימה של $1",
"block-log-flags-anononly": "משתמשים אנונימיים בלבד",
"block-log-flags-nocreate": "יצירת חשבונות נחסמה",
"block-log-flags-noautoblock": "חסימה אוטומטית מבוטלת",
"ipb_already_blocked": "המשתמש \"$1\" כבר נחסם.",
"ipb-needreblock": "$1 כבר נחסם. האם ברצונך לשנות את הגדרות החסימה?",
"ipb-otherblocks-header": "{{PLURAL:$1|חסימה אחרת|חסימות אחרות}}",
- "unblock-hideuser": "×\9c×\90 × ×\99ת×\9f ×\9cש×\97רר ×\9eשת×\9eש זה, כיוון ששם המשתמש שלו הוסתר.",
+ "unblock-hideuser": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9a ×\9cש×\97רר ×\90ת ×\94×\97ס×\99×\9e×\94 ש×\9c ×\94×\9eשת×\9eש ×\94זה, כיוון ששם המשתמש שלו הוסתר.",
"ipb_cant_unblock": "שגיאה: חסימה מספר $1 לא נמצאה. ייתכן שהיא כבר שוחררה.",
"ipb_blocked_as_range": "שגיאה: כתובת ה־IP $1 אינה חסומה ישירות ולכן לא ניתן לשחרר את חסימתה. עם זאת, היא חסומה כחלק מהטווח $2, שניתן לשחרר את חסימתו.",
"ip_range_invalid": "טווח IP שגוי.",
"lockdb": "נעילת בסיס נתונים",
"unlockdb": "שחרור בסיס נתונים",
"lockdbtext": "נעילת בסיס הנתונים תמנע ממשתמשים את האפשרות לערוך דפים, לשנות את העדפותיהם, לערוך את רשימות המעקב שלהם, ופעולות אחרות הדורשות ביצוע שינויים בבסיס הנתונים.\n\nאנא אשרו שזה מה שאתם מתכוונים לעשות, ושתשחררו את בסיס הנתונים מנעילה כאשר פעולת התחזוקה תסתיים.",
- "unlockdbtext": "ש×\97ר×\95ר ×\91ס×\99ס ×\94× ×ª×\95× ×\99×\9d ×\9e× ×¢×\99×\9c×\94 ×\99×\97×\96×\99ר ×\9c×\9eשת×\9eש×\99×\9d ×\90ת ×\94×\99×\9b×\95×\9cת ×\9cער×\95×\9a ×\93פ×\99×\9d, ×\9c×©× ×\95ת ×\90ת ×\94×¢×\93פ×\95ת×\99×\94×\9d, ×\9cער×\95×\9a ×\90ת רש×\99×\9e×\95ת ×\94×\9eעק×\91 ש×\9c×\94×\9d, ×\95×\9c×\91צע פע×\95×\9c×\95ת ×\90×\97ר×\95ת ×\94×\93×\95רש×\95ת ×\91×\99צ×\95×¢ ש×\99× ×\95×\99×\99×\9d ×\91×\91ס×\99ס ×\94× ×ª×\95× ×\99×\9d\n×\90× ×\90 ×\90שר×\95 ש×\96×\94 ×\9e×\94 ש×\91×\9b×\95×\95× ×ªכם לעשות.",
+ "unlockdbtext": "ש×\97ר×\95ר ×\91ס×\99ס ×\94× ×ª×\95× ×\99×\9d ×\9e× ×¢×\99×\9c×\94 ×\99×\97×\96×\99ר ×\9c×\9b×\9c ×\94×\9eשת×\9eש×\99×\9d ×\90ת ×\94×\99×\9b×\95×\9cת ×\9cער×\95×\9a ×\93פ×\99×\9d, ×\9c×©× ×\95ת ×\90ת ×\94×¢×\93פ×\95ת ×\94×\9eשת×\9eש ש×\9c×\94×\9d, ×\9cער×\95×\9a ×\90ת רש×\99×\9e×\95ת ×\94×\9eעק×\91 ש×\9c×\94×\9d, ×\95×\9c×\91צע פע×\95×\9c×\95ת ×\90×\97ר×\95ת ×\94×\93×\95רש×\95ת ×\91×\99צ×\95×¢ ש×\99× ×\95×\99×\99×\9d ×\91×\91ס×\99ס ×\94× ×ª×\95× ×\99×\9d.\n×\90× ×\90 ×\90שר×\95 ש×\96×\94 ×\9e×\94 ×\90×\9b×\9f ×\9e×\94 ש×\91רצ×\95× כם לעשות.",
"lockconfirm": "כן, ברצוני לנעול את בסיס הנתונים.",
"unlockconfirm": "כן, ברצוני לשחרר את בסיס הנתונים מנעילה.",
"lockbtn": "נעילת בסיס הנתונים",
"tooltip-pt-watchlist": "רשימת הדפים שאתם עוקבים אחרי השינויים בהם",
"tooltip-pt-mycontris": "רשימת התרומות שלך",
"tooltip-pt-anoncontribs": "רשימת העריכות שנעשו מכתובת ה־IP הזאת",
- "tooltip-pt-login": "×\9e×\95×\9e×\9c×¥ ×\9c×\94×\99×\9b× ×¡ ×\9c×\97ש×\91×\95×\9f; ×¢×\9d ×\96×\90ת, ×\96×\94 ×\9c×\90 ×\97×\95×\91×\94",
+ "tooltip-pt-login": "×\9e×\95×\9e×\9c×¥ ×\9c×\94×\99×\9b× ×¡ ×\9c×\97ש×\91×\95×\9f; ×¢×\9d ×\96×\90ת, ×\90×\99×\9f ×\97×\95×\91×\94 ×\9cעש×\95ת ×\96×\90ת",
"tooltip-pt-logout": "יציאה מהחשבון",
- "tooltip-pt-createaccount": "×\9e×\95×\9e×\9c×¥ ×\9c×\99צ×\95ר ×\97ש×\91×\95×\9f ×\95×\9c×\94×\99×\9b× ×¡ ×\90×\9c×\99×\95; ×¢×\9d ×\96×\90ת, ×\96×\94 ×\9c×\90 ×\97×\95×\91×\94",
+ "tooltip-pt-createaccount": "×\9e×\95×\9e×\9c×¥ ×\9c×\99צ×\95ר ×\97ש×\91×\95×\9f ×\95×\9c×\94×\99×\9b× ×¡ ×\90×\9c×\99×\95; ×¢×\9d ×\96×\90ת, ×\90×\99×\9f ×\97×\95×\91×\94 ×\9cעש×\95ת ×\96×\90ת",
"tooltip-ca-talk": "שיחה על דף זה",
"tooltip-ca-edit": "עריכת דף זה באמצעות קוד ויקי",
"tooltip-ca-addsection": "הוספת פסקה חדשה",
"file-no-thumb-animation-gif": "'''לתשומת לבך: בשל מגבלות טכניות, תמונות ממוזערות של תמונות GIF בעלות רזולוציה גבוהה כמו זאת לא תהיינה מונפשות.'''",
"newimages": "גלריית קבצים חדשים",
"imagelisttext": "להלן רשימה של {{PLURAL:$1|קובץ אחד|$1 קבצים}}, ממוינים $2:",
- "newimages-summary": "דף זה מציג את הקבצים האחרונים שהועלו.",
+ "newimages-summary": "×\93×£ ×\9e×\99×\95×\97×\93 ×\96×\94 ×\9eצ×\99×\92 ×\90ת ×\94ק×\91צ×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d ש×\94×\95×¢×\9c×\95.",
"newimages-legend": "מסנן",
"newimages-label": "שם הקובץ (או חלק ממנו):",
"newimages-showbots": "הצגת העלאות שבוצעו על־ידי בוטים",
"exif-colorspace": "מרחב הצבע",
"exif-componentsconfiguration": "משמעות כל רכיב",
"exif-compressedbitsperpixel": "שיטת דחיסת התמונה",
- "exif-pixelydimension": "רוחב התמונה הנכון",
- "exif-pixelxdimension": "גובה התמונה הנכון",
+ "exif-pixelxdimension": "רוחב התמונה הנכון",
+ "exif-pixelydimension": "גובה התמונה הנכון",
"exif-usercomment": "הערות המשתמש",
"exif-relatedsoundfile": "קובץ שמע מקושר",
"exif-datetimeoriginal": "התאריך והשעה של יצירת הקובץ",
"watchlistedit-raw-done": "רשימת המעקב עודכנה.",
"watchlistedit-raw-added": "{{PLURAL:$1|כותרת אחת נוספה|$1 כותרות נוספו}}:",
"watchlistedit-raw-removed": "{{PLURAL:$1|כותרת אחת הוסרה|$1 כותרות הוסרו}}:",
- "watchlistedit-clear-title": "רש×\99×\9eת ×\94×\9eעק×\91 × ×\9e×\97ק×\94",
+ "watchlistedit-clear-title": "× ×\99ק×\95×\99 רש×\99×\9eת ×\94×\9eעק×\91",
"watchlistedit-clear-legend": "ניקוי רשימת המעקב",
- "watchlistedit-clear-explain": "×\9b×\9c ×\94×\9b×\95תר×\95ת ש×\9c ×\94×\93פ×\99×\9d ש×\99×\95סר×\95 ×\9eרש×\99×\9eת ×\94×\9eעק×\91",
+ "watchlistedit-clear-explain": "×\9b×\9c ×\94×\93פ×\99×\9d ×\99×\95סר×\95 ×\9eרש×\99×\9eת ×\94×\9eעק×\91 ש×\9c×\9a",
"watchlistedit-clear-titles": "כותרות:",
"watchlistedit-clear-submit": "ניקוי רשימת המעקב (לצמיתות!)",
"watchlistedit-clear-done": "רשימת המעקב שלך נוקתה.",
"redirect-not-exists": "הערך לא נמצא",
"fileduplicatesearch": "חיפוש קבצים כפולים",
"fileduplicatesearch-summary": "חיפוש קבצים כפולים על בסיס ערכי הגיבוב שלהם.",
- "fileduplicatesearch-legend": "חיפוש קבצים כפולים",
"fileduplicatesearch-filename": "קובץ:",
"fileduplicatesearch-submit": "חיפוש",
"fileduplicatesearch-info": "<span dir=\"ltr\">$1 × $2</span> פיקסלים<br />גודל הקובץ: $3<br />סוג MIME: $4",
"sessionprovider-mediawiki-session-cookiesessionprovider": "התחברויות המבוססות על עוגיות",
"sessionprovider-nocookies": "ייתכן שאפשרות השימוש בעוגיות כבויה. יש לוודא שאפשרות השימוש בעוגיות מופעלת ולהתחיל מחדש.",
"randomrootpage": "דף שורש אקראי",
- "log-action-filter-block": "ס×\95×\92 ×\94×\97ס×\99×\9e×\95ת:",
- "log-action-filter-delete": "ס×\95×\92 ×\94×\9e×\97×\99ק×\95ת:",
+ "log-action-filter-block": "ס×\95×\92 ×\94×\97ס×\99×\9e×\94:",
+ "log-action-filter-delete": "ס×\95×\92 ×\94×\9e×\97×\99ק×\94:",
"log-action-filter-patrol": "סוג השינויים הבדוקים:",
"log-action-filter-protect": "סוג ההגנות:",
"log-action-filter-upload": "סוג ההעלאות:",
"log-action-filter-all": "הכול",
- "log-action-filter-block-block": "×\97ס×\99×\9e×\95ת",
- "log-action-filter-block-reblock": "שינויי חסימה",
- "log-action-filter-block-unblock": "שחרורי חסימה",
+ "log-action-filter-block-block": "×\97ס×\99×\9e×\94",
+ "log-action-filter-block-reblock": "שינוי חסימה",
+ "log-action-filter-block-unblock": "שחרור חסימה",
"log-action-filter-delete-delete": "מחיקת דפים",
- "log-action-filter-delete-restore": "שחזור דפים מחוקים",
+ "log-action-filter-delete-restore": "שחזור דפים",
"log-action-filter-delete-event": "מחיקת פעולות יומן",
"log-action-filter-delete-revision": "מחיקת גרסאות",
"log-action-filter-patrol-patrol": "סימוניים ידניים כבדוק",
"exif-colorspace": "रंग स्थान",
"exif-componentsconfiguration": "हर घटक का मतलब",
"exif-compressedbitsperpixel": "चित्र कॉम्प्रेशन मोड",
- "exif-pixelydimension": "छवि चौड़ाई",
- "exif-pixelxdimension": "छवि ऊँचाई",
+ "exif-pixelxdimension": "छवि चौड़ाई",
+ "exif-pixelydimension": "छवि ऊँचाई",
"exif-usercomment": "सदस्य टिप्पणी",
"exif-relatedsoundfile": "संबंधित ध्वनी फ़ाईल",
"exif-datetimeoriginal": "डाटा बनाने का दिनांक और समय",
"redirect-not-exists": "यह मान प्राप्त नहीं हुआ",
"fileduplicatesearch": "फ़ाईल द्विरावृत्ति खोजें",
"fileduplicatesearch-summary": "हैश वैल्यू के अनुसार फ़ाईल की द्विरावृत्ति खोजें।",
- "fileduplicatesearch-legend": "द्विरावृत्ति के लिये खोजें",
"fileduplicatesearch-filename": "फ़ाईलनाम:",
"fileduplicatesearch-submit": "खोजें",
"fileduplicatesearch-info": "$1 × $2 पीक्सेल<br />फ़ाईल का आकार: $3<br />MIME प्रकार: $4",
"exif-colorspace": "Rang ke jagha",
"exif-componentsconfiguration": "Har ek component ke matlab",
"exif-compressedbitsperpixel": "Chapa ke compression mode",
- "exif-pixelydimension": "Chaapa ke thiik chaurrai",
- "exif-pixelxdimension": "Chaapa ke thiik uunchai",
+ "exif-pixelxdimension": "Chaapa ke thiik chaurrai",
+ "exif-pixelydimension": "Chaapa ke thiik uunchai",
"exif-usercomment": "Sadasysa ke bichar",
"exif-relatedsoundfile": "Saathe waala awaaj waala file",
"exif-datetimeoriginal": "Data generation ke tarik aur time",
"newarticle": "(Novo)",
"newarticletext": "Došli ste na stranicu koja još ne postoji.\nAko želite stvoriti tu stranicu, počnite tipkati u prozor ispod ovog teksta (pogledajte [$1 stranicu za pomoć]).\nAko ste ovamo dospjeli slučajno, kliknite gumb '''natrag''' (back) u svom pregledniku.",
"anontalkpagetext": "----''Ovo je stranica za razgovor s neprijavljenim suradnikom koji još nije otvorio suradnički račun ili se njime ne koristi. Zbog toga se moramo služiti brojčanom IP adresom kako bismo ga identificirali. Takvu adresu često može dijeliti više ljudi. Ako ste neprijavljeni suradnik i smatrate da su Vam upućeni irelevantni komentari, molimo Vas da [[Special:UserLogin/signup|otvorite suradnički račun]] ili [[Special:UserLogin|se prijavite]] te tako u budućnosti izbjegnete zamjenu s drugim neprijavljenim suradnicima.''",
- "noarticletext": "Na ovoj stranici trenutačno nema sadržaja.\nMožete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]\nili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.",
+ "noarticletext": "Na ovoj stranici trenutačno nema sadržaja.\nMožete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]\nili [{{fullurl:{{FULLPAGENAME}}|action=edit}} stvoriti ovu stranicu]</span>.",
"noarticletext-nopermission": "Ova stranica nema sadržaja.\nMožete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama ili <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]</span>, ali ne možete stvoriti ovu stranicu.",
"missing-revision": "Uređivanje broj $1 na stranici \"{{FULLPAGENAME}}\" ne postoji.\n\nOvo je obično uzrokovano kada kliknete na zastarjelu poveznicu na stranice koja je obrisana.\nViše informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} evidenciji brisanja].",
"userpage-userdoesnotexist": "Suradničko ime \"<nowiki>$1</nowiki>\" nije prijavljeno. Jeste li sigurni da želite stvoriti/uređivati ovu stranicu?",
"import-logentry-upload-detail": "$1 {{PLURAL:$1|izmjena|izmjene|izmjena}}",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|promjena|promjene|promjena}} od $2",
"javascripttest": "Testiranje JavaScripta",
- "javascripttest-pagetext-noframework": "Ova je stranica rezervirana za izvršavanje JavaScript testova.",
- "javascripttest-pagetext-unknownframework": "Nepoznata testna okolina \"$1\".",
- "javascripttest-pagetext-frameworks": "Molimo izaberite jednu od sljedećih testnih okolina: $1",
- "javascripttest-pagetext-skins": "Izaberite temu (''skin'') za testiranje:",
"javascripttest-qunit-intro": "Pogledajte [$1 testnu dokumentaciju] na mediawiki.org.",
"tooltip-pt-userpage": "Stranica suradnika {{GENDER:|Your user}}",
"tooltip-pt-anonuserpage": "Suradnička stranica za IP adresu pod kojom uređujete",
- "tooltip-pt-mytalk": "Moja stranica za razgovor",
+ "tooltip-pt-mytalk": "Vaša stranica za razgovor",
"tooltip-pt-anontalk": "Razgovor o suradnicima s ove IP adrese",
"tooltip-pt-preferences": "Vaše postavke",
"tooltip-pt-watchlist": "Popis stranica koje pratite.",
- "tooltip-pt-mycontris": "Popis mojih doprinosa",
+ "tooltip-pt-mycontris": "Popis Vaših doprinosa",
"tooltip-pt-login": "Predlažemo Vam da se prijavite, ali nije obvezno.",
"tooltip-pt-logout": "Odjavi se",
"tooltip-pt-createaccount": "Nudimo vam mogućnost da napravite račun i prijavite se, iako to nije nužno.",
"exif-colorspace": "Kolor prostor",
"exif-componentsconfiguration": "Značenje pojedinih komponenti",
"exif-compressedbitsperpixel": "Dubina boje poslije sažimanja",
- "exif-pixelydimension": "Važeća širina slike",
- "exif-pixelxdimension": "Važeća visina slike",
+ "exif-pixelxdimension": "Važeća širina slike",
+ "exif-pixelydimension": "Važeća visina slike",
"exif-usercomment": "Suradnički komentar",
"exif-relatedsoundfile": "Povezani zvučni zapis",
"exif-datetimeoriginal": "Datum i vrijeme slikanja",
"redirect-file": "Datotečno ime",
"fileduplicatesearch": "Traži kopije datoteka",
"fileduplicatesearch-summary": "Traži kopije datoteka na temelju njihove hash vrijednosti.",
- "fileduplicatesearch-legend": "Traži kopije datoteka",
"fileduplicatesearch-filename": "Ime datoteke:",
"fileduplicatesearch-submit": "Traži",
"fileduplicatesearch-info": "$1 × $2 piksela<br />Veličina datoteke: $3<br />MIME tip: $4",
"exif-colorspace": "Farrebraum",
"exif-componentsconfiguration": "Bedeitung einzelner Komponente",
"exif-compressedbitsperpixel": "Komprimierte Bits por Pixel",
- "exif-pixelydimension": "Bildbreit",
- "exif-pixelxdimension": "Bildhöch",
+ "exif-pixelxdimension": "Bildbreit",
+ "exif-pixelydimension": "Bildhöch",
"exif-usercomment": "Benutzerkommentare",
"exif-relatedsoundfile": "Zugehöriche Tondatei",
"exif-datetimeoriginal": "Erfassungszeitpunkt",
"exif-colorspace": "Barbny rum",
"exif-componentsconfiguration": "Woznam kóždeje komponenty",
"exif-compressedbitsperpixel": "Modus wobrazoweje kompresije",
- "exif-pixelydimension": "Šěrokosć wobraza",
- "exif-pixelxdimension": "Wysokosć wobraza",
+ "exif-pixelxdimension": "Šěrokosć wobraza",
+ "exif-pixelydimension": "Wysokosć wobraza",
"exif-usercomment": "Přispomjenja wužiwarja",
"exif-relatedsoundfile": "Zwjazana zynkowa dataja",
"exif-datetimeoriginal": "Datum a čas wutworjenja datow",
"exif-colorspace": "Színtér",
"exif-componentsconfiguration": "Az egyes összetevők jelentése",
"exif-compressedbitsperpixel": "Képtömörítési mód",
- "exif-pixelydimension": "Képszélesség",
- "exif-pixelxdimension": "Képmagasság",
+ "exif-pixelxdimension": "Képszélesség",
+ "exif-pixelydimension": "Képmagasság",
"exif-usercomment": "Felhasználók megjegyzései",
"exif-relatedsoundfile": "Kapcsolódó hangfájl",
"exif-datetimeoriginal": "EXIF információ létrehozásának dátuma",
"redirect-not-exists": "Érték nem található",
"fileduplicatesearch": "Duplikátumok keresése",
"fileduplicatesearch-summary": "Fájlok duplikátumainak keresése hash értékük alapján.",
- "fileduplicatesearch-legend": "Duplikátum keresése",
"fileduplicatesearch-filename": "Fájlnév:",
"fileduplicatesearch-submit": "Keresés",
"fileduplicatesearch-info": "$1 × $2 pixel<br />Fájlméret: $3<br />MIME-típus: $4",
"exif-colorspace": "Spatio de colores",
"exif-componentsconfiguration": "Significato de cata componente",
"exif-compressedbitsperpixel": "Modo de compression del imagine",
- "exif-pixelydimension": "Latitude del imagine",
- "exif-pixelxdimension": "Altitude del imagine",
+ "exif-pixelxdimension": "Latitude del imagine",
+ "exif-pixelydimension": "Altitude del imagine",
"exif-usercomment": "Commentos del usator",
"exif-relatedsoundfile": "File audio connexe",
"exif-datetimeoriginal": "Data e hora del generation del datos",
"redirect-not-exists": "Valor non trovate",
"fileduplicatesearch": "Cercar files duplicate",
"fileduplicatesearch-summary": "Cercar files duplicate a base de lor summas de verification ''(hash).''",
- "fileduplicatesearch-legend": "Cercar un duplicato",
"fileduplicatesearch-filename": "Nomine del file:",
"fileduplicatesearch-submit": "Cercar",
"fileduplicatesearch-info": "$1 × $2 pixel<br />Grandor del file: $3<br />Typo MIME: $4",
"exif-colorspace": "Ruang warna",
"exif-componentsconfiguration": "Arti tiap komponen",
"exif-compressedbitsperpixel": "Mode kompresi gambar",
- "exif-pixelydimension": "Lebar gambar",
- "exif-pixelxdimension": "Tinggi gambar",
+ "exif-pixelxdimension": "Lebar gambar",
+ "exif-pixelydimension": "Tinggi gambar",
"exif-usercomment": "Komentar pengguna",
"exif-relatedsoundfile": "Berkas audio yang berhubungan",
"exif-datetimeoriginal": "Tanggal dan waktu pembuatan data",
"exif-colorspace": "Espasio ti maris",
"exif-componentsconfiguration": "Kaibuksilan iti tunggal maysa a komponente",
"exif-compressedbitsperpixel": "Moda ti kompresion ti ladawan",
- "exif-pixelydimension": "Kaakaba ti ladawan",
- "exif-pixelxdimension": "Katayag ti ladawan",
+ "exif-pixelxdimension": "Kaakaba ti ladawan",
+ "exif-pixelydimension": "Katayag ti ladawan",
"exif-usercomment": "Dagiti komentario ti agar-aramat",
"exif-relatedsoundfile": "Mainaig a papeles ti audio",
"exif-datetimeoriginal": "Petsa ken oras ti pannakaaramid ti datos",
"accmailtitle": "КъайладIоагӀа дӀадахьийтад",
"newarticle": "(Kерда)",
"newarticletext": "Шо хьожаяргаца дехьадаьннад йоаца оагӀув тӀа.\nИз кхолларгьйолаш кӀалхагӀа доала корачу текст Iочуязаде (нагахьа кхетаде хала дале [$1 новкъосталан оагӀувага] хьажа).\nЦа ховш укхаза нийсденнадале, шоай браузера кнопка '''Юха''' тӀа пӀелга тоӀабе.",
- "noarticletext": "Ð¥Iанз Ñ\83кÑ\85 оагÓ\80Ñ\83в Ñ\82Ó\80а Ñ\8fздам доаÑ\86аÑ\88 да.\n[[Special:Search/{{PAGENAME}}|Ñ\86Ñ\83 Ñ\82айпаÑ\80а Ñ\86Ó\80и дÑ\83вÑ\86ам коÑ\80аде]] кÑ\85Ñ\8bдола йоазÑ\83ваÑ\88каÑ\85 йийÑ\88а Ñ\8f Ñ\88Ñ\83н, веÑ\88Ñ\82а\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Ñ\82аÑ\80а дола Ñ\82апÑ\82аÑ\80ий йоазÑ\83в каÑ\80ае], е\n'''[{{fullurl:{{FULLPAGENAME}}|action=edit}} изза мо Ñ\86Ó\80и йолаÑ\88 оагÓ\80Ñ\83в ела]'''</span>.",
+ "noarticletext": "Ð¥Iанз Ñ\83кÑ\85 оагÓ\80Ñ\83в Ñ\82Ó\80а Ñ\82екÑ\81Ñ\82 Ñ\8fÑ\86.\nШÑ\83н аÑ\8cÑ\82Ñ\82Ñ\83в ба [[Special:Search/{{PAGENAME}}|Ñ\86Ñ\83 Ñ\82айпаÑ\80а Ñ\86Ó\80и Ñ\85Ñ\8cоаÑ\8fÑ\80 коÑ\80аде]] кÑ\85Ñ\8bйола йоазÑ\83ваÑ\88 Ñ\87Ñ\83, иÑ\88Ñ\82Ñ\82а\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Ñ\82аÑ\80а дола Ñ\82епÑ\82аÑ\80ий Ñ\8fздаÑ\8cÑ\80аÑ\88], е\n'''[{{fullurl:{{FULLPAGENAME}}|action=edit}} изза мо Ñ\86Ó\80и йолаÑ\88 оагÓ\80Ñ\83в кÑ\85олла]'''</span>.",
"noarticletext-nopermission": "ХIанз укх оагӀув тӀа яздам дац.\nШун йиш я, кхыдола йоазувнашках [[Special:Search/{{PAGENAME}}|дола цӀерий хаттам корае]] е <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} нийсамий тептара йоазувнаш корае].</span>",
"note": "'''ХӀамоалар:'''",
"previewnote": "'''Хьалхе б|аргтассам мара бац.'''\nЯздам кхы яздаь дац!",
"searchresults-title": "\"$1\" тохка",
"notextmatches": "ОагIувнаша яздамий вIашагIакхетараш дац",
"prevn": "{{PLURAL:$1|хьалхйоагlар $1|хьалхйоагlараш $1|хьалхйоагlараш $1}}",
- "nextn": "{{PLURAL:$1|тlехьайоагlар $1|тlехьайоагlараш $1|тlехьайоагlараш $1}}",
+ "nextn": "{{PLURAL:$1|1=тIехьайоагIар|тIехьайоагIараш}} $1",
"prevn-title": "{{PLURAL:$1|1=$1 хьалхара йоазув|$1 хьалхара йоазувнаш}}",
"nextn-title": "{{PLURAL:$1|1=$1 тIехьара йоазув|$1 тIехьара йоазувнаш}}",
"shown-title": "Хьóкха $1 {{PLURAL:$1|даь йоазо|даь йоазонаш}} укх оáгIувна тIа",
"recentchanges-label-minor": "ЗIамига хувцам я",
"recentchanges-label-bot": "Ер хувцам бIатаца яь е",
"recentchanges-label-unpatrolled": "Ер хувцам ший моттиге кхы дIадехьаяьккхаяц.",
+ "recentchanges-label-plusminus": "байташкахь боарам хувцар",
+ "recentchanges-legend-heading": "<strong>Легенда: </strong>",
+ "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (хьажа иштта [[Special:NewPages|керда оагIувнашка]])",
"rcnotefrom": "КIалхагIа хувцамаш хьахьекха я <strong>$2</strong> денза (<strong>$1</strong> кхачалца).",
"rclistfrom": "$3 $2 тIара хувцамаш хьахьокха",
"rcshowhideminor": "$1 зIамига хувцамаш",
"rcshowhideminor-hide": "Къайлдаккха",
"rcshowhidebots": "$1 боташ",
"rcshowhidebots-show": "Хьахьокха",
- "rcshowhideliu": "Чубаьнначара дакъалаьцархочий $1",
+ "rcshowhideliu": "$1 бовзийтарчара доакъашхой",
"rcshowhideliu-hide": "Къайлдаккха",
"rcshowhideanons": "$1 цIияьккханза дакъалаьцархой",
"rcshowhideanons-show": "Хьахьокха",
"undelete-search-submit": "Хьалáха",
"namespace": "ЦIерий аренаш",
"invert": "Хьаржар юхадаккха",
+ "namespace_association": "Ювзаенна мотт",
"blanknamespace": "(Кертера)",
"contributions": "{{GENDER:$1|Доакъашхочунна}} къахьегам",
"contributions-title": "$1 дакъалаьцархочунна къахьегам",
"exif-imagedescription": "Сурта цIи",
"exif-artist": "Яздархо",
"exif-colorspace": "Басара аре",
- "exif-pixelydimension": "Сурта шерал",
- "exif-pixelxdimension": "Сурта лакхал",
+ "exif-pixelxdimension": "Сурта шерал",
+ "exif-pixelydimension": "Сурта лакхал",
"exif-datetimedigitized": "Оцифровк яь таьрахь а, ха а",
"exif-writer": "Яздама да",
"exif-languagecode": "Мотт",
"exif-colorspace": "Litrýmd",
"exif-componentsconfiguration": "Merking hverrar einingar",
"exif-compressedbitsperpixel": "Aðferð við myndþjöppun",
- "exif-pixelydimension": "Breidd myndar",
- "exif-pixelxdimension": "Hæð myndar",
+ "exif-pixelxdimension": "Breidd myndar",
+ "exif-pixelydimension": "Hæð myndar",
"exif-usercomment": "Athugunarsemdir notanda",
"exif-relatedsoundfile": "Tengd hljóðskrá",
"exif-datetimeoriginal": "Upprunaleg dagsetning",
"exif-colorspace": "Spazio dei colori",
"exif-componentsconfiguration": "Significato di ciascuna componente",
"exif-compressedbitsperpixel": "Modalità di compressione immagine",
- "exif-pixelydimension": "Larghezza immagine",
- "exif-pixelxdimension": "Altezza immagine",
+ "exif-pixelxdimension": "Larghezza immagine",
+ "exif-pixelydimension": "Altezza immagine",
"exif-usercomment": "Note dell'utente",
"exif-relatedsoundfile": "File audio collegato",
"exif-datetimeoriginal": "Data e ora di creazione dei dati",
"redirect-not-exists": "Valore non trovato",
"fileduplicatesearch": "Ricerca dei file duplicati",
"fileduplicatesearch-summary": "Ricerca di eventuali duplicati del file in base al valore di ''hash''.",
- "fileduplicatesearch-legend": "Ricerca di un duplicato",
"fileduplicatesearch-filename": "Nome del file:",
"fileduplicatesearch-submit": "Ricerca",
"fileduplicatesearch-info": "$1 × $2 pixel<br />Dimensione del file: $3<br />Tipo MIME: $4",
"exif-colorspace": "色空間情報",
"exif-componentsconfiguration": "各コンポーネントの意味",
"exif-compressedbitsperpixel": "画像圧縮モード",
- "exif-pixelydimension": "実効画像の幅",
- "exif-pixelxdimension": "実効画像の高さ",
+ "exif-pixelxdimension": "実効画像の幅",
+ "exif-pixelydimension": "実効画像の高さ",
"exif-usercomment": "ユーザー コメント",
"exif-relatedsoundfile": "関連音声ファイル",
"exif-datetimeoriginal": "原画像データの生成日時",
"redirect-not-exists": "値が見つかりません",
"fileduplicatesearch": "重複ファイルの検索",
"fileduplicatesearch-summary": "重複ファイルをハッシュ値に基づいて検索します。",
- "fileduplicatesearch-legend": "重複の検索",
"fileduplicatesearch-filename": "ファイル名:",
"fileduplicatesearch-submit": "検索",
"fileduplicatesearch-info": "$1 × $2 ピクセル<br />ファイルサイズ: $3<br />MIME タイプ: $4",
"editfont-serif": "Aksara (font) Serif",
"sunday": "Minggu",
"monday": "Senèn",
- "tuesday": "Slasa",
+ "tuesday": "Selasa",
"wednesday": "Rebo",
"thursday": "Kemis",
- "friday": "Jemuwah",
+ "friday": "Jumuwah",
"saturday": "Setu",
"sun": "Min",
"mon": "Sen",
"tue": "Sel",
- "wed": "Rab",
- "thu": "Kam",
- "fri": "Jem",
+ "wed": "Reb",
+ "thu": "Kem",
+ "fri": "Jum",
"sat": "Set",
"january": "Januari",
- "february": "Fébruari",
+ "february": "Pébruari",
"march": "Maret",
"april": "April",
- "may_long": "Méi",
+ "may_long": "Mèi",
"june": "Juni",
"july": "Juli",
"august": "Agustus",
- "september": "September",
+ "september": "Sèptèmber",
"october": "Oktober",
- "november": "November",
+ "november": "Nopèmber",
"december": "Désèmber",
"january-gen": "Januari",
- "february-gen": "Fébruari",
+ "february-gen": "Fèbruari",
"march-gen": "Maret",
"april-gen": "April",
"may-gen": "Méi",
"june-gen": "Juni",
"july-gen": "Juli",
"august-gen": "Agustus",
- "september-gen": "September",
+ "september-gen": "Sèptèmber",
"october-gen": "Oktober",
- "november-gen": "November",
+ "november-gen": "Nopèmber",
"december-gen": "Désèmber",
"jan": "Jan",
- "feb": "Feb",
+ "feb": "Pèb",
"mar": "Mar",
"apr": "Apr",
- "may": "Méi",
+ "may": "Mèi",
"jun": "Jun",
"jul": "Jul",
"aug": "Agu",
- "sep": "Sep",
+ "sep": "Sèp",
"oct": "Okt",
- "nov": "Nov",
- "dec": "Des",
+ "nov": "Nop",
+ "dec": "Dès",
"january-date": "Januari $1",
"february-date": "Februari $1",
"march-date": "Maret $1",
"november-date": "$1 Novèmber",
"december-date": "$1 Dèsèmber",
"pagecategories": "{{PLURAL:$1|Kategori|Kategori}}",
- "category_header": "Artikel ing kategori \"$1\"",
+ "category_header": "Kaca sajeroning kategori \"$1\"",
"subcategories": "Subkategori",
"category-media-header": "Média ing kategori \"$1\"",
"category-empty": "''Kategori iki saiki ora ngandhut artikel utawa média.''",
"mypage": "Kaca",
"mytalk": "Wicara",
"anontalk": "Dhiskusi IP puniki",
- "navigation": "Pandhu Arah",
- "and": " Lan",
+ "navigation": "Napigasi",
+ "and": " lan",
"qbfind": "Golèk",
"qbbrowse": "Navigasi",
"qbedit": "Sunting",
"faq": "FAQ (Pitakonan sing kerep diajokaké)",
"faqpage": "Project:FAQ",
"actions": "Tindakan",
- "namespaces": "Ruang jeneng",
- "variants": "Varian",
- "navigation-heading": "Menu navigasi",
+ "namespaces": "Lowah aran",
+ "variants": "Parian",
+ "navigation-heading": "Menu napigasi",
"errorpagetitle": "Kasalahan",
- "returnto": "Bali menyang $1.",
+ "returnto": "Bali nyang $1.",
"tagline": "Saka {{SITENAME}}",
"help": "Pitulung",
- "search": "Panggolèkan",
+ "search": "Golèk",
"searchbutton": "Golèk",
"go": "Nuju menyang",
- "searcharticle": "Nuju menyang",
- "history": "Vèrsi sadurungé",
+ "searcharticle": "Menyang",
+ "history": "Sajarah kaca",
"history_short": "Vèrsi lawas",
"updatedmarker": "diowahi wiwit kunjungan pungkasanku",
- "printableversion": "Versi cithak",
+ "printableversion": "Cara cithakan",
"permalink": "Pranala permanèn",
"print": "Cithak",
"view": "Pirsani",
- "view-foreign": "Pirsani ing $1",
- "edit": "Sunting",
+ "view-foreign": "Deleng nyang $1",
+ "edit": "Besut",
"create": "Nggawé",
- "create-local": "Tambah pawedharan lokal",
+ "create-local": "Tambah wedharan enggon-enggonan",
"editthispage": "Sunting kaca iki",
"create-this-page": "Nggawé kaca iki",
"delete": "Busak",
"unprotectthispage": "Owahi pangreksan kaca iki",
"newpage": "Kaca anyar",
"talkpage": "Dhiskusèkna kaca iki",
- "talkpagelinktext": "Wicara",
+ "talkpagelinktext": "gunem",
"specialpage": "Kaca astaméwa",
- "personaltools": "Piranti pribadi",
+ "personaltools": "Piranti pribadhi",
"articlepage": "nDeleng artikel",
- "talk": "Dhiskusi",
+ "talk": "Rembug",
"views": "Tampilan",
"toolbox": "Piranti",
"userpage": "Ndeleng kaca panganggo",
"viewhelppage": "Ndeleng kaca pitulung",
"categorypage": "Ndeleng kaca kategori",
"viewtalkpage": "Ndeleng kaca dhiskusi",
- "otherlanguages": "Basa liya",
+ "otherlanguages": "Jeroning basa liya",
"redirectedfrom": "(Dialihkan dari $1)",
"redirectpagesub": "Kaca pangalihan",
- "lastmodifiedat": "Kaca iki diowahi pungkasané nalika $2, $1.",
+ "lastmodifiedat": "Kaca iki pungkasan diowah kala $1, tabuh $2.",
"viewcount": "Kaca iki wis tau diaksès cacahé ping {{PLURAL:$1|siji|$1}}.",
"protectedpage": "Kaca sing direksa",
- "jumpto": "Langsung menyang:",
- "jumptonavigation": "navigasi",
+ "jumpto": "Jujug:",
+ "jumptonavigation": "napigasi",
"jumptosearch": "golèk",
"view-pool-error": "Nyuwun ngapuro, peladèn lagi sibuk wektu iki.\nKakèhan panganggo sing nyoba mbukak kaca iki.\nEntèni sedhéla sadurungé nyoba ngaksès kaca iki manèh .\n\n$1",
"pool-timeout": "Kelangkung wekdal nengga kunci",
"pool-queuefull": "Kempalan antrian kebak",
"pool-errorunknown": "Kalepata ingkang mboten dipun mangertosi",
- "aboutsite": "Prakara {{SITENAME}}",
- "aboutpage": "Project:Prakara",
+ "aboutsite": "Bab {{SITENAME}}",
+ "aboutpage": "Project:Bab",
"copyright": "Kabèh isi kasedyakaké miturut $1.",
"copyrightpage": "{{ns:project}}:Hak cipta",
- "currentevents": "Prastawa saiki",
- "currentevents-url": "Project:Prastawa saiki",
- "disclaimers": "Pamaidonan",
- "disclaimerpage": "Project:Panyangkalan umum",
- "edithelp": "Pitulung panyuntingan",
- "mainpage": "Kaca Utama",
- "mainpage-description": "Kaca Utama",
+ "currentevents": "Kadadéan saiki",
+ "currentevents-url": "Project:Kadadéan saiki",
+ "disclaimers": "Sélakan",
+ "disclaimerpage": "Project:Sélakan umum",
+ "edithelp": "Pitulung besut",
+ "mainpage": "Kaca Pokok",
+ "mainpage-description": "Kaca pokok",
"policy-url": "Project:Kabijakan",
- "portal": "Gapura komunitas",
- "portal-url": "Project:Portal komunitas",
- "privacy": "Kebijakan privasi",
- "privacypage": "Project:Kabijakan privasi",
+ "portal": "Gapura paguyuban",
+ "portal-url": "Project:Garupa paguyuban",
+ "privacy": "Niti pripasi",
+ "privacypage": "Project:Niti pripasi",
"badaccess": "Aksès ora olèh",
"badaccess-group0": "Panjenengan ora pareng nglakokaké tindhakan sing panjenengan gayuh.",
"badaccess-groups": "Pratingkah panjenengan diwatesi tumrap panganggo ing {{PLURAL:$2|klompoké|klompoké}}: $1.",
"versionrequired": "Dibutuhaké MediaWiki vèrsi $1",
"versionrequiredtext": "MediaWiki vèrsi $1 dibutuhaké kanggo nggunakaké kaca iki. Mangga mirsani [[Special:Version|kaca iki]]",
"ok": "OK",
- "retrievedfrom": "Sumber artikel iki saka kaca situs web: \"$1\"",
+ "retrievedfrom": "Dijupuk saka: \"$1\"",
"youhavenewmessages": "Panjenengan kagungan $1 ($2).",
"youhavenewmessagesfromusers": "Sampéyan nduwé $1 saka {{PLURAL:$3|panganggo liya|$3 panganggo}} ($2).",
"youhavenewmessagesmanyusers": "Sampéyang nduwé $1 saka akèh panganggo ($2).",
"newmessageslinkplural": "{{PLURAL:$1|layang anyar|999=layang anyar}}",
"newmessagesdifflinkplural": "{{PLURAL:$1|owahan|999=owahan}} pungkasan",
"youhavenewmessagesmulti": "Panjenengan olèh pesen-pesen anyar $1",
- "editsection": "sunting",
- "editold": "sunting",
+ "editsection": "besut",
+ "editold": "besut",
"viewsourceold": "deleng sumber",
- "editlink": "sunting",
+ "editlink": "besut",
"viewsourcelink": "deleng sumber",
- "editsectionhint": "Sunting bagian: $1",
- "toc": "Bab lan paragraf",
+ "editsectionhint": "Besut pérangan: $1",
+ "toc": "Isi",
"showtoc": "tuduhna",
"hidetoc": "delikna",
"collapsible-collapse": "Singidaken",
"feed-invalid": "Tipe permintaan asupan ora bener.",
"feed-unavailable": "Umpan sindikasi (''syndication feeds'') ora kasedyakaké",
"site-rss-feed": "$1 ''RSS Feed''",
- "site-atom-feed": "$1 ''Atom Feed''",
+ "site-atom-feed": "Umpan atom $1",
"page-rss-feed": "\"$1\" ''RSS Feed''",
"page-atom-feed": "\"$1\" ''Atom Feed''",
"red-link-title": "$1 (kaca durung ana)",
"sort-descending": "Urutaké medhun",
"sort-ascending": "Urutaké munggah",
- "nstab-main": "Artikel",
- "nstab-user": "Panganggo",
+ "nstab-main": "Kaca",
+ "nstab-user": "Kaca panganggo",
"nstab-media": "Media",
- "nstab-special": "Astamiwa",
- "nstab-project": "Proyek",
- "nstab-image": "Gambar",
+ "nstab-special": "Kaca mirunggan",
+ "nstab-project": "Kaca proyèk",
+ "nstab-image": "Barkas",
"nstab-mediawiki": "Pariwara",
- "nstab-template": "Cithak",
+ "nstab-template": "Cithakan",
"nstab-help": "Pitulung",
"nstab-category": "Kategori",
+ "mainpage-nstab": "Kaca pokok",
"nosuchaction": "Ora ana pratingkah kaya ngono",
"nosuchactiontext": "Pratingkah sing dirinci déning URL ora sah.\nPanjenengan manawa salah ketik nalika ngisi URL, utawa salah ngisi pranala.\nIki manawa uga nuduhaké anané kesalahan ing piranti alus sing dipigunakaké déning {{SITENAME}}.",
"nosuchspecialpage": "Ora ana kaca astaméwa kaya ngono",
"cannotdelete-title": "Ora bisa mbusak kaca \"$1\"",
"delete-hook-aborted": "Pambusakan dibatalaké déning ''hook''.\nOra ana alesané.",
"no-null-revision": "Ora isa nggawe revisi 'null' anyar kanggo kaca \"$1\"",
- "badtitle": "Judhulé ora sah",
+ "badtitle": "Sésirah ala",
"badtitletext": "Judhul kaca sing panjenengan ora bisa dituduhaké, kosong, utawa dadi judhul antar-basa utawa judhul antar-wiki. Iku bisa uga ana sawijining utawa luwih aksara sing ora bisa didadèkaké judhul.",
"perfcached": "Data iki mung dijupuk saka papan singgahan lan mungkin ora kaanyaran. Maksimum {{PLURAL:$1|sak asil|$1 asil}} sumadhiya nèng papan singgahan.",
"perfcachedts": "Data iki mung dijupuk saka papan singgahan lan mungkin dianyari pungkasan $1. Maksimum {{PLURAL:$4|sak asil|$4 asil}} sumadhiya nèng papan singgahan.",
"querypage-no-updates": "Update saka kaca iki lagi dipatèni. Data sing ana ing kéné saiki ora bisa bakal dibalèni unggah manèh.",
- "viewsource": "Tuduhna sumber",
+ "viewsource": "Deleng sumber",
"viewsource-title": "Delok sumberé $1",
"actionthrottled": "Tindakan diwatesi",
"actionthrottledtext": "Minangka sawijining pepesthèn anti-spam, panjenengan diwatesi nglakoni tindhakan iki sing cacahé kakèhan ing wektu cendhak.\nMangga dicoba manèh ing sawetara menit.",
"welcomecreation-msg": "Akun panjenengan wis kacipta. Aja lali nata konfigurasi [[Special:Preferences|preferensi {{SITENAME}}]] panjenengan.",
"yourname": "Asma pangangeman",
"userlogin-yourname": "Jeneng panganggo",
- "userlogin-yourname-ph": "Lebokaké jenengné panganggo",
+ "userlogin-yourname-ph": "Isi jeneng panganggo Sampéyan",
"createacct-another-username-ph": "Lebokna jeneng panganggo:",
"yourpassword": "Tembung sandhi:",
- "userlogin-yourpassword": "Tembung sandhi",
+ "userlogin-yourpassword": "Tembung wadi",
"userlogin-yourpassword-ph": "Lebokna tembung sandhi",
"createacct-yourpassword-ph": "Lebokna tembung sandhi",
"yourpasswordagain": "Balènana tembung sandhi",
"createacct-yourpasswordagain": "Konfirmasi tembung sandhi",
"createacct-yourpasswordagain-ph": "Lebokna tembung sandhi maneh",
"remembermypassword": "Émut tembung sandi kula (salebeting $1 {{PLURAL:$1|dinten|dinten}})",
- "userlogin-remembermypassword": "Gawe supaya aku tetep mlebet log terus",
+ "userlogin-remembermypassword": "Panggah mlebu",
"userlogin-signwithsecure": "Nganggo koneksi aman",
"yourdomainname": "Dhomain panjenengan",
"password-change-forbidden": "Sampéyan ora bisa ngganti tembung sandhi nèng wiki iki.",
"externaldberror": "Ana kasalahan otèntikasi basis dhata èksternal utawa panjenengan ora pareng nglakoni pemutakhiran marang akun èksternal panjenengan.",
- "login": "Mlebu log",
+ "login": "Mlebu",
"nav-login-createaccount": "Log mlebu / nggawé rékening (akun)",
"userlogin": "Mlebu log / gawé rékening (akun)",
"userloginnocreate": "Mlebu log",
"logout": "Oncat",
"userlogout": "Metu log",
"notloggedin": "Durung mlebu log",
- "userlogin-noaccount": "Durung kagungan akun?",
- "userlogin-joinproject": "Gabung {{SITENAME}}",
+ "userlogin-noaccount": "Durung duwé akun?",
+ "userlogin-joinproject": "Mèlua {{SITENAME}}",
"nologin": "Durung kagungan asma panganggo? '''$1'''.",
"nologinlink": "Ndaftaraké akun anyar",
- "createaccount": "Nggawé akun anyar",
+ "createaccount": "Gawé akun",
"gotaccount": "Wis kagungan akun? '''$1'''.",
"gotaccountlink": "Mlebu",
"userlogin-resetlink": "Lali rincian mlebu log Sampéyan?",
- "userlogin-resetpassword-link": "Sampéyan kélangan tembung sandhi?",
+ "userlogin-resetpassword-link": "Lali tembung wadiné Sampéyan?",
"userlogin-loggedin": "Sampeyan sampun mlebet log dadi {{GENDER:$1|$1}}.\nGunakna formulir ing ngisor iki kanggo mlebet log dadi panganggo liyane.",
"userlogin-createanother": "Gawé akun anyar",
"createacct-emailrequired": "Alamat layang èlèktronik",
"loginlanguagelabel": "Basa: $1",
"suspicious-userlogout": "Panjaluk panjenengan supaya metu ditolak amarga katoné panjlajah internt utawa proksi panyinggah.",
"createacct-another-realname-tip": "Jeneng asli ora kudu dilebokake.\n\nYen sampeyan milih nglebokake jeneng asli, jeneng kuwi bakal dinggo ngwenehi atribusi kanggo karya-karyane.",
- "pt-login": "Mlebet log",
- "pt-createaccount": "Damel akun enggal",
+ "pt-login": "Mlebu",
+ "pt-createaccount": "Gawé akun",
"php-mail-error-unknown": "Kasalahan ora dingertèni nèng piguna mail() PHP.",
"user-mail-no-addy": "Njajal ngirim layang èlèktronik tanpa alamat layang èlèktronik.",
"user-mail-no-body": "Nyoba ngirim layang e-mail, tapi isine kosong.",
"resettokens-watchlist-token": "Token kangge sindikasi web (Atom/RSS) saking [[Special:Watchlist|pangowahan ing daptar pangawasan sampeyan]]",
"resettokens-done": "Reset token.",
"resettokens-resetbutton": "Reset token sing dipilih",
- "bold_sample": "Tèks iki bakal dicithak kandel",
- "bold_tip": "Cithak kandel",
- "italic_sample": "Tèks iki bakal dicithak miring",
+ "bold_sample": "Tulisan kandel",
+ "bold_tip": "Tulisann kandel",
+ "italic_sample": "Tulisan miring",
"italic_tip": "Cithak miring",
- "link_sample": "Judhul pranala",
+ "link_sample": "Sesirah pranala",
"link_tip": "Pranala njero",
- "extlink_sample": "http://www.example.com judhul pranala",
- "extlink_tip": "Pranala njaba (aja lali wiwitan http:// )",
+ "extlink_sample": "http://www.example.com sesirahing pranala",
+ "extlink_tip": "Pranala jaba (élinga ater-ater http://)",
"headline_sample": "Tèks judhul",
"headline_tip": "Subbagian tingkat 1",
"nowiki_sample": "Tèks iki ora bakal diformat",
"image_sample": "Conto.jpg",
"image_tip": "Mènèhi gambar/berkas",
"media_sample": "Conto.ogg",
- "media_tip": "Pranala berkas media",
+ "media_tip": "Pranala barkas",
"sig_tip": "Tapak asta panjenengan mawa tandha wektu",
"hr_tip": "Garis horisontal",
- "summary": "Ringkesan:",
+ "summary": "Tingkesan:",
"subject": "Subyek/judhul:",
- "minoredit": "Iki suntingan cilik.",
+ "minoredit": "Iki besutan cilik",
"watchthis": "Awasana kaca iki",
"savearticle": "Simpen kaca",
"preview": "Pratayang",
"showpreview": "Mirsani pratayang",
- "showdiff": "Tuduhna pangowahan",
+ "showdiff": "Tuduhaké owahan",
"anoneditwarning": "<strong>Penget:</strong> Panjenengan boten mlebet log. Alamat IP Panjenengan badhe katingal dening publik manawi Panjenengan ngayahi ewah-ewahan. Manawi Panjenengan <strong>[$1 mlebet log]</strong> utawai <strong>[$2 damel akun]</strong>, suntingan Panjenengan badhe kaatribusekaken dhumateng nama pangangge Panjenengan, lan rupi-rupi kauntungan sanesipun.",
"anonpreviewwarning": "''Sampéyan durung mlebu log. Nyimpen bakal nyathet alamat IP Sampéyan nèng riwayat sunting kaca iki.''",
"missingsummary": "'''Pènget:''' Panjenengan ora nglebokaké ringkesan panyuntingan. Menawa panjenengan mencèt tombol Simpen manèh, suntingan panjenengan bakal kasimpen tanpa ringkesan panyuntingan.",
"nosuchsectiontitle": "Bagéan ora ditemokaké",
"nosuchsectiontext": "Panjenengan nyoba nyunting sawijining bagéan sing ora ana.\nBagéan iki manawa wis dipindhah utawa dibusak nalika panjenengan buka.",
"loginreqtitle": "Mangga mlebu log",
- "loginreqlink": "mlebu log",
+ "loginreqlink": "mlebu",
"loginreqpagetext": "Panjenengan kudu $1 kanggo bisa mirsani kaca liyané.",
"accmailtitle": "Tembung sandhi wis dikirim.",
"accmailtext": "Sawijining tembung sandi sembarang kanggo [[User talk:$1|$1]] wis dikirim menyang $2.\n\nTembung sandi kanggo panganggo anyar iki isa diganti ing kaca ''[[Special:ChangePassword|ganti tembung sandi]]'' sawisé mlebu log.",
"session_fail_preview_html": "'''Nuwun sèwu! Kita ora bisa prosès suntingan panjenengan amerga data sési ilang.'''\n\n''Amerga wiki iki ngidinaké panrapan HTML mentah, pratayang didelikaké minangka penggakan marang serangan Javascript.''\n\n'''Yèn iki sawijining upaya suntingan sing absah, mangga dicoba manèh. Yèn isih tetep ora kasil, cobanen metu log utawa oncat lan mlebua manèh.'''",
"token_suffix_mismatch": "'''Suntingan panjenengan ditulak amerga aplikasi klièn panjenengan ngowahi karakter tandha wewacan ing suntingan. Suntingan iku ditulak kanggo untuk menggak kaluputan ing tèks artikel. Prekara iki kadhangkala dumadi yèn panjenengan ngangem dines layanan proxy anonim adhedhasar situs wèb sing duwé masalah.'''",
"edit_form_incomplete": "'''Sebagéyan pormulir suntingan ora tekan nèng sasana; cèk pindho yèn suntingan Sampéyan isih wutuh lan jajal manèh.'''",
- "editing": "Nyunting $1",
+ "editing": "Mbesut $1",
"creating": "Nggawé $1",
"editingsection": "Nyunting $1 (bagian)",
"editingcomment": "Nyunting $1 (bagéyan anyar)",
"templatesused": "{{PLURAL:$1|Cithakan|Cithakan}} sing dienggo ing kaca iki:",
"templatesusedpreview": "{{PLURAL:$1|Cithakan|Cithakan-cithakan}} sing dienggo ing pratilik iki:",
"templatesusedsection": "{{PLURAL:$1|Cithakan}} sing dienggo ding bagian iki:",
- "template-protected": "(direksa)",
- "template-semiprotected": "(semi-pangreksan)",
+ "template-protected": "(kareksa)",
+ "template-semiprotected": "(semu kareksa)",
"hiddencategories": "Kaca iki sawijining anggota saka {{PLURAL:$1|1 kategori ndelik|$1 kategori-kategori ndelik}}:",
"edittools": "<!-- Tèks ing ngisor iki bakal ditudhuhaké ing ngisoring isènan suntingan lan pangemotan.-->",
"nocreatetext": "Situs iki ngwatesi kemampuan kanggo nggawé kaca anyar. Panjenengan bisa bali lan nyunting kaca sing wis ana, utawa mangga [[Special:UserLogin|mlebua log utawa ndaftar]]",
"currentrevisionlink": "Revisi saiki",
"cur": "saiki",
"next": "sabanjuré",
- "last": "akir",
+ "last": "sadurung",
"page_first": "kapisan",
"page_last": "pungkasan",
"histlegend": "Pilihen rong tombol radhio banjur pencèten tombol ''bandhingna'' kanggo mbandhingaké versi. Klik sawijining tanggal kanggo ndeleng versi kaca ing tanggal iku.<br />(skr) = prabédan karo vèrsi saiki, (akir) = prabédan karo vèrsi sadurungé, '''s''' = suntingan sithik, '''b''' = suntingan bot, → = suntingan bagian, ← = ringkesan otomatis",
"difference-title": "$1: Bèntenipun revisi",
"difference-title-multipage": "Prabédhan antara kaca \"$1\" lan \"$2\"",
"difference-multipage": "(Prabédhan antar kaca)",
- "lineno": "Larikan $1:",
+ "lineno": "Larik $1:",
"compareselectedversions": "Bandhingna vèrsi kapilih",
"showhideselectedversions": "Tampilaké/dhelikaké révisi kapilih",
- "editundo": "batalna",
+ "editundo": "wurungaké",
"diff-empty": "(Ora ana bedane)",
"diff-multi-manyusers": "({{PLURAL:$1Siji rèvisi sedhengan|$1 rèvisi sedhengan}} déning luwih saka $2 {{PLURAL:$2|panganggo|panganggo}} ora dituduhaké)",
"difference-missing-revision": "{{PLURAL:$2|Sak pambenahan|$2 pambenahan}} saka prabédan iki ($1) {{PLURAL:$2|ora ditemokaké|ora ditemokaké}}.\n\nIki biasané kasebab pranala prabedan sing wis ora kanggo saka kaca isi wis dibusak.\nRinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log busak].",
- "searchresults": "Kasil panggolèkan",
- "searchresults-title": "Kasil panggolèkan saka \"$1\"",
+ "searchresults": "Kasiling golèk",
+ "searchresults-title": "Kasiling golèk \"$1\"",
"titlematches": "Irah-irahan artikel sing cocog",
"textmatches": "Tèks artikel sing cocog",
"notextmatches": "Ora ana tèks kaca sing cocog",
"searchmenu-new": "'''Damel kaca \"[[:$1]]\" ing wiki punika!'''",
"searchprofile-articles": "Kaca isi",
"searchprofile-images": "Multimedia",
- "searchprofile-everything": "Kabèh",
+ "searchprofile-everything": "Samubarang",
"searchprofile-advanced": "Tataran luwih dhuwur/maju",
- "searchprofile-articles-tooltip": "Panggolèkan ing $1",
- "searchprofile-images-tooltip": "Panggolèkan berkas",
+ "searchprofile-articles-tooltip": "Golèkan ing $1",
+ "searchprofile-images-tooltip": "Golèk barkas",
"searchprofile-everything-tooltip": "Panggolèkan kabèh isi (klebu kaca-kaca wicara)",
"searchprofile-advanced-tooltip": "Panggolèkan ing bilik jeneng biasa (''custom'')",
"search-result-size": "$1 ({{PLURAL:$2|1 tembung|$2 tembung}})",
"search-result-category-size": "{{PLURAL:$1|1 anggota|$1 anggota}} ({{PLURAL:$2|1 subkatégori|$2 subkatégori}}, {{PLURAL:$3|1 berkas|$3 berkas}})",
"search-redirect": "(pangalihan $1)",
- "search-section": "(sèksi $1)",
+ "search-section": "(pérangan $1)",
"search-suggest": "Apa panjenengan kersané: $1",
"search-interwiki-caption": "Proyèk-proyèk kagandhèng",
"search-interwiki-default": "Pituwas $1:",
"nchanges": "$1 {{PLURAL:$1|pangowahan|owah-owahan}}",
"enhancedrc-since-last-visit": "$1 {{PLURAL:$1|saka keri dhewe mrene}}",
"enhancedrc-history": "sajarah",
- "recentchanges": "Owah-owahan",
+ "recentchanges": "Owahan pungkasan",
"recentchanges-legend": "Pilihan owah-owahan pungkasan",
"recentchanges-summary": "Runutna owah-owahan pungkasan ing wiki iki ing kaca iki.",
"recentchanges-noresult": "Ora ana pangowahan ing periode sing diwiwiti kriteria iki.",
"recentchanges-feed-description": "Urutna owah-owahan anyar ing wiki ing ''feed'' iki.",
- "recentchanges-label-newpage": "Suntingan iki gawé kaca anyar",
- "recentchanges-label-minor": "Iki suntingan sithik",
- "recentchanges-label-bot": "Suntingan iki diayahi déning bot",
+ "recentchanges-label-newpage": "Besutan iki nggawé kaca anyar",
+ "recentchanges-label-minor": "Iki besutan cilik",
+ "recentchanges-label-bot": "Besutan iki diayahi bot",
"recentchanges-label-unpatrolled": "Suntingan iki durung dipatroli",
"recentchanges-label-plusminus": "Agengipun kaca sampun dipunowahi samekaten.",
"recentchanges-legend-heading": "<strong>Katrangan:</strong>",
"recentchanges-legend-plusminus": "(''±123'')",
"rcnotefrom": "Ing ngisor iki owah-owahan wiwit <strong>$2</strong> (kapacak nganti <strong>$1</strong> owah-owahan).",
"rclistfrom": "Saiki nuduhaké owah-owahan wiwit tanggal $3 $2",
- "rcshowhideminor": "$1 suntingan sithik",
+ "rcshowhideminor": "$1 besutan cilik",
"rcshowhideminor-hide": "Singidaken",
"rcshowhidebots": "$1 bot",
- "rcshowhidebots-show": "Tedahaken",
- "rcshowhideliu": "$1 panganggo sing wis ndaptar",
+ "rcshowhidebots-show": "Tuduhaké",
+ "rcshowhideliu": "$1 panganggo karégister",
"rcshowhideliu-hide": "Singidaken",
"rcshowhideanons": "$1 panganggo anonim",
"rcshowhideanons-hide": "Singidaken",
"rcshowhidepatr": "$1 suntingan sing dipatroli",
- "rcshowhidemine": "$1 suntinganku",
+ "rcshowhidemine": "$1 besutanku",
"rcshowhidemine-hide": "Singidaken",
"rclinks": "Tuduhna owah-owahan pungkasan $1 ing $2 dina pungkasan iki.<br />$3",
- "diff": "béda",
- "hist": "sajarah",
+ "diff": "béd",
+ "hist": "saj",
"hide": "Delikna",
- "show": "Tuduhna",
- "minoreditletter": "s",
+ "show": "Tuduhaké",
+ "minoreditletter": "c",
"newpageletter": "A",
"boteditletter": "b",
"number_of_watching_users_pageview": "[$1 {{PLURAL:$1|cacahé sing ngawasi|cacahé sing ngawasi}}]",
"rc_categories": "Watesana nganti kategori (dipisah karo \"|\")",
"rc_categories_any": "Apa waé",
- "rc-change-size-new": "$1 {{PLURAL:$1|bita|bita}} sakwisé diowah",
+ "rc-change-size-new": "$1 {{PLURAL:$1|bét|bét}} sabubaré diowah",
"newsectionsummary": "/* $1 */ bagéyan anyar",
"rc-enhanced-expand": "Tuduhaké princèn",
"rc-enhanced-hide": "Dhelikaké princèn",
"rc-old-title": "wigatiné digawé minangka \"$1\"",
- "recentchangeslinked": "Pangowahan sing terkait",
+ "recentchangeslinked": "Owahan magepokan",
"recentchangeslinked-feed": "Pangowahan sing terkait",
- "recentchangeslinked-toolbox": "Pangowahan sing terkait",
+ "recentchangeslinked-toolbox": "Owahan magepokan",
"recentchangeslinked-title": "Owah-owahan sing ana gandhèngané karo \"$1\"",
"recentchangeslinked-summary": "Kaca astaméwa (kaca kusus) iki mènèhi daftar owah-owahan pungkasan ing kaca-kaca sing kagandhèng (utawa anggota sawijining kateogri). Kaca sing [[Special:Watchlist|panjenengan awasi]] ditandhani '''kandel'''.",
"recentchangeslinked-page": "Jeneng kaca:",
"recentchangeslinked-to": "Nuduhaké owah-owahan menyang kaca sing disambung menyang kaca-kaca iki",
- "upload": "Unggah",
+ "upload": "Unggah barkas",
"uploadbtn": "Unggahna berkas",
"reuploaddesc": "Bali ing formulir pamotan",
"upload-tryagain": "Kirim déskripsi berkas sing wis diowah",
"uploadlogpage": "Log pangunggahan",
"uploadlogpagetext": "Ing ngisor iki kapacak log pangunggahan berkas sing anyar dhéwé.\nMangga mirsani [[Special:NewFiles|galeri berkas-berkas anyar]] kanggo pratélan visual.",
"filename": "Jeneng berkas",
- "filedesc": "Ringkesan",
+ "filedesc": "Tingkesan",
"fileuploadsummary": "Ringkesan:",
"filereuploadsummary": "Owah-owahan berkas:",
"filestatus": "Status hak cipta",
"upload-curl-error28": "Pangunggahan ngliwati wektu",
"upload-curl-error28-text": "Situsé kesuwèn sadurungé réaksi.\nMangga dipriksa menawa situsé aktif, nunggu sedélok lan coba manèh.\nMbok-menawa panjenengan bisa nyoba manèh ing wektu sing luwih longgar.",
"license": "Jenis lisènsi:",
- "license-header": "Jinis lisènsi",
+ "license-header": "Pamalilah",
"nolicense": "Durung ana sing dipilih",
"license-nopreview": "(Pratayang ora sumedya)",
"upload_source_url": " (sawijining URL absah sing bisa diaksès publik)",
"upload_source_file": " (sawijining berkas ing komputeré panjenengan)",
"listfiles-summary": "Kaca astamiwa nudhuhaké kabèh berkas kaunggah.\nYèn disaring déning panganggo, namung berkas mawa vèrsi paling anyar waé sing bakal katon.",
"listfiles_search_for": "Golèk jeneng gambar:",
- "imgfile": "gambar",
+ "imgfile": "barkas",
"listfiles": "Daftar gambar",
"listfiles_thumb": "Gambar mini",
"listfiles_date": "Tanggal",
"listfiles-latestversion": "Versi saiki",
"listfiles-latestversion-yes": "Iya",
"listfiles-latestversion-no": "Ora",
- "file-anchor-link": "Gambar",
+ "file-anchor-link": "Barkas",
"filehist": "Sajarah berkas",
"filehist-help": "Klik ing tanggal/wektu kanggo deleng berkas iki ing wektu iku.",
"filehist-deleteall": "busaken kabèh",
"filehist-deleteone": "busaken iki",
"filehist-revert": "balèkna",
- "filehist-current": "saiki iki",
- "filehist-datetime": "Tanggal/Wektu",
+ "filehist-current": "saiki",
+ "filehist-datetime": "Surya/Tabuh",
"filehist-thumb": "Miniatur (''thumbnail'')",
"filehist-thumbtext": "Miniatur kanggo versi ing $1",
"filehist-nothumb": "Ora ana miniatur",
"filehist-user": "Panganggo",
"filehist-dimensions": "Ukuran",
"filehist-filesize": "Gedhené berkas",
- "filehist-comment": "Komentar",
+ "filehist-comment": "Tanggapan",
"imagelinks": "Panganggoan berkas",
"linkstoimage": "Kaca-kaca sing kapacak iki duwé {{PLURAL:$1|pranala|$1 pranala}} menyang berkas iki:",
"linkstoimage-more": "Luwih saka $1 {{PLURAL:$1|kaca|kaca-kaca}} nduwèni pranala menyang berkas iki.\nDhaftar ing ngisor nuduhaké {{PLURAL:$1|kaca pisanan kanthi pranala langsung|$1 kaca kanthi pranala langsung}} menyang berkas iki.\n[[Special:WhatLinksHere/$2|dhaftar pepak]] uga ana.",
"unusedtemplates": "Cithakan sing ora dienggo",
"unusedtemplatestext": "Kaca iki ngamot kabèh kaca ing bilik jeneng {{ns:template}} sing ora dianggo ing kaca ngendi waé.\nPriksanen dhisik pranala-pranala menyang cithakan iki sadurungé mbusak.",
"unusedtemplateswlh": "pranala liya-liyané",
- "randompage": "Sembarang kaca",
+ "randompage": "Waton kaca",
"randompage-nopages": "Ora ana kaca ing {{PLURAL:$2||}}bilik jeneng iki:$1.",
"randomincategory": "Sembarang kaca ing kategori",
"randomincategory-invalidcategory": "\"$1\" dudu jeneng kategori sing apik.",
"prevpage": "Kaca sadurungé ($1)",
"allpagesfrom": "Kaca-kaca kawiwitan kanthi:",
"allpagesto": "Tampilaké kaca dipungkasi ing:",
- "allarticles": "Kabèh artikel",
+ "allarticles": "Kabèh kaca",
"allinnamespace": "Kabeh kaca ($1 namespace)",
- "allpagessubmit": "Madosi",
+ "allpagessubmit": "Menyang",
"allpagesprefix": "Kapacak kaca-kaca ingkang mawi ater-ater:",
"allpagesbadtitle": "Irah-irahan (judhul) ingkang dipun-gunaaken boten sah utawi nganggé ater-ater (awalan) antar-basa utawi antar-wiki. Irah-irahan punika saged ugi nganggé setunggal aksara utawi luwih ingkang boten saged kagunaaken dados irah-irahan.",
"allpages-bad-ns": "{{SITENAME}} ora duwé bilik nama \"$1\".",
"cachedspecial-viewing-cached-ttl": "Sampéyan lagi ndelok vèrsi cadhangan saka kaca iki, sing bisa dadi lawasé wis $1.",
"cachedspecial-viewing-cached-ts": "Sampéyan lagi ndelok vèrsi cadhangan saka kaca iki, sing bisa dadi ora padha karo kasunyatan.",
"cachedspecial-refresh-now": "Delok sing paling anyar.",
- "categories": "Daftar kategori",
+ "categories": "Kategori",
"categoriespagetext": "{{PLURAL:$1|kategori ing ngisor iki ngandhut|kategori ing ngisor iki ngandhut}} kaca utawa media.\n[[Special:UnusedCategories|Kategori sing ora dianggo]] ora ditampilaké ing kéné.\nDeleng uga [[Special:WantedCategories|kategori sing diperlokaké]].",
"categoriesfrom": "Tampilaké kategori-kategori diwiwiti saka:",
"special-categories-sort-count": "urutna miturut angka",
"addedwatchtext": "Kaca \"[[:$1]]\" wis ditambahaké menyang [[Special:Watchlist|daftar pangawasan]].\nOwah-owahan sing dumadi ing tembé ing kaca iku lan kaca dhiskusi sing kagandhèng, bakal dipacak ing kéné.",
"removewatch": "Singkiraké saka daptar pangawasan",
"removedwatchtext": "Kaca \"[[:$1]]\" wis dibusak saka [[Special:Watchlist|daftar pangawasan]].",
- "watch": "tutana",
+ "watch": "Awati",
"watchthispage": "Periksa kaca iki",
"unwatch": "Ora usah ngawasaké manèh",
"unwatchthispage": "Batalna olèhé ngawasi kaca iki",
"undelete-error-long": "Ana kaluputan nalika mbatalaké pambusakan berkas:\n\n$1",
"undelete-show-file-confirm": "Apa panjenengan yakin arep mirsani révisi berkas \"<nowiki>$1</nowiki>\" sing wis kabusak ing $2 jam $3?",
"undelete-show-file-submit": "Ya",
- "namespace": "Bilik nama (bilik jeneng):",
+ "namespace": "Lowah aran:",
"invert": "Balèkna pilihan",
"tooltip-invert": "Centhang kothak iki kanggo ndhelikaké owahan saka kaca-kaca nèng njero bilik jeneng kapilih (lan bilik jeneng kakait yèn dicenthang)",
"namespace_association": "Bilik jeneng kakait",
"tooltip-namespace_association": "Centhang kothak iki kanggo nglebokaké uga bilik jeneng gumenan utawa subyèk sing kakait karo bilik jeneng kapilih",
- "blanknamespace": "(Utama)",
+ "blanknamespace": "(Pokok)",
"contributions": "Sumbangan {{GENDER:$1|panganggo}}",
"contributions-title": "Kontribusi panganggo kanggo $1",
"mycontris": "Kontribusi",
"sp-contributions-username": "Alamat IP utawa jeneng panganggo:",
"sp-contributions-toponly": "Tuduhaké was suntingan saka benahan pungkasan",
"sp-contributions-submit": "Golèk",
- "whatlinkshere": "Pranala balik",
- "whatlinkshere-title": "Kaca-kaca sing duwé pranala menyang \"$1\"",
+ "whatlinkshere": "Sing nggayut mréné",
+ "whatlinkshere-title": "Kaca mawa pranala nggayut \"$1\"",
"whatlinkshere-page": "Kaca:",
"linkshere": "Kaca-kaca iki nduwé pranala menyang '''[[:$1]]''':",
"nolinkshere": "Ora ana kaca sing nduwé pranala menyang '''[[:$1]]'''.",
"nolinkshere-ns": " Ora ana kaca sing nduwé pranala menyang '''[[:$1]]''' ing bilik jeneng sing kapilih.",
- "isredirect": "kaca pangalihan",
+ "isredirect": "kaca lihlihan",
"istemplate": "karo cithakan",
"isimage": "pranala berkas",
"whatlinkshere-prev": "{{PLURAL:$1|sadurungé|$1 sadurungé}}",
"whatlinkshere-hidetrans": "$1 transklusi",
"whatlinkshere-hidelinks": "pranala-pranala $1",
"whatlinkshere-hideimages": "$1 pranala berkas",
- "whatlinkshere-filters": "Filter-filter",
+ "whatlinkshere-filters": "Panyaringan",
"autoblockid": "Blokir otomatis #$1",
"block": "Blokir panganggo",
"unblock": "Uculaké blokirané panganggo",
"blocklist-nousertalk": "ora éntuk nyunting kaca gunemané dhéwé",
"ipblocklist-empty": "Daftar pamblokiran kosong.",
"ipblocklist-no-results": "alamat IP utawa panganggo sing disuwun ora diblokir.",
- "blocklink": "blokir",
+ "blocklink": "palang",
"unblocklink": "jabel blokir",
"change-blocklink": "owahi blokir",
"contribslink": "sumbangan",
"allmessages-prefix": "Saring nganggo ater-ater:",
"allmessages-language": "Basa:",
"allmessages-filter-submit": "Tumuju menyang",
- "thumbnail-more": "Gedhèkna",
+ "thumbnail-more": "Gedhèkaké",
"filemissing": "Berkas ora ditemokaké",
"thumbnail_error": "Kaluputan nalika nggawé gambar cilik (''thumbnail''): $1",
"thumbnail_error_remote": "Peringatan kasalahan saka $1:\n$2",
"import-logentry-upload-detail": "$1 {{PLURAL:$1|révisi|révisi}}",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|révisi}} saka $2",
"javascripttest": "Panjajalan JavaScript",
- "javascripttest-pagetext-noframework": "Kaca iki disadhiyakaké kanggo nglakokaké panjajalan JavaScript.",
- "javascripttest-pagetext-unknownframework": "Rangka kerja panjajalan ora dingertèni \"$1\".",
- "javascripttest-pagetext-frameworks": "Mangga pilih sawiji saka rangka kerja panjajalan iki: $1",
- "javascripttest-pagetext-skins": "Pilih kulit kanggo nglakokaké panjajalan mawa:",
"javascripttest-qunit-intro": "Delok [dhokumèntasi panjajalan $1] nèng mediawiki.org.",
"tooltip-pt-userpage": "Kaca panganggo panjenengan",
"tooltip-pt-anonuserpage": "Kaca panganggo IP panjenengan",
"tooltip-pt-preferences": "Préferènsiku",
"tooltip-pt-watchlist": "Daftar kaca sing tak-awasi.",
"tooltip-pt-mycontris": "Daftar kontribusi panjenengan",
- "tooltip-pt-login": "Panjenengan diaturi mlebu log, nanging ora dikudokaké.",
- "tooltip-pt-logout": "Log metu (oncat)",
- "tooltip-pt-createaccount": "Panjenengan kasuwun damel akun lan mlebet log; ananging bab punika boten wajib",
- "tooltip-ca-talk": "Dhiskusi perkara isi",
- "tooltip-ca-edit": "Sunting kaca iki. Nganggoa tombol pratayang sadurungé nyimpen.",
- "tooltip-ca-addsection": "Miwiti bagèyan anyar",
+ "tooltip-pt-login": "Sampéyan prayogané mlebu masiya ora kudu",
+ "tooltip-pt-logout": "Metu",
+ "tooltip-pt-createaccount": "Sampéyan prayogané gawé akun lan mlebu masiya ora kudu",
+ "tooltip-ca-talk": "Parembuganing kaca isi",
+ "tooltip-ca-edit": "Besut kaca iki",
+ "tooltip-ca-addsection": "Wiwiti pérangan anyar",
"tooltip-ca-viewsource": "Kaca iki direksa. Panjenengan namung bisa mirsani sumberé.",
"tooltip-ca-history": "Vèrsi-vèrsi sadurungé saka kaca iki.",
"tooltip-ca-protect": "Reksa kaca iki",
"tooltip-ca-move": "Pindhahen kaca iki",
"tooltip-ca-watch": "Tambahna kaca iki ing daftar pangawasan panjenengan",
"tooltip-ca-unwatch": "Busak kaca iki saka daftar pangawasan panjenengan",
- "tooltip-search": "Golek ing situs {{SITENAME}} iki",
- "tooltip-search-go": "Lungaa ing kaca mawa jeneng persis iki, yèn anaa",
- "tooltip-search-fulltext": "Golèk kaca sing duwé tèks kaya mangkéné",
- "tooltip-p-logo": "Kaca Utama",
- "tooltip-n-mainpage": "Nuwèni Kaca Utama",
- "tooltip-n-mainpage-description": "Pirsani Kaca Utama",
- "tooltip-n-portal": "Perkara proyèk, apa sing bisa panjenengan gayuh, lan ing ngendi golèk apa-apa",
+ "tooltip-search": "Golèk nyang {{SITENAME}}",
+ "tooltip-search-go": "Jujug kaca asesirah persis mangkéné yèn ana",
+ "tooltip-search-fulltext": "Golèk kaca isi tulisan kaya mangkéné",
+ "tooltip-p-logo": "Menyang kaca pokok",
+ "tooltip-n-mainpage": "Menyang kaca pokok",
+ "tooltip-n-mainpage-description": "Menyang kaca pokok",
+ "tooltip-n-portal": "Bab proyèk, apa sing bisa Sampéyan garap, ana ing endi saprelu golèk apa-apa",
"tooltip-n-currentevents": "Temokna informasi perkara prastawa anyar",
- "tooltip-n-recentchanges": "Daftar owah-owahan anyar ing wiki.",
- "tooltip-n-randompage": "Tuduhna sembarang kaca",
- "tooltip-n-help": "Papan kanggo golèk pitulung.",
- "tooltip-t-whatlinkshere": "Daftar kabèh kaca wiki sing nyambung menyang kaca iki",
+ "tooltip-n-recentchanges": "Pratélaning owah-owahan pungkasan sajeroning wiki.",
+ "tooltip-n-randompage": "Mot waton kaca",
+ "tooltip-n-help": "Papan kanggo golèk weruh",
+ "tooltip-t-whatlinkshere": "Pratélaning kabèh kaca wiki sing nggayut mréné",
"tooltip-t-recentchangeslinked": "Owah-owahan pungkasan kaca-kaca sing duwé pranala menyang kaca iki",
"tooltip-feed-rss": "''RSS feed'' kanggo kaca iki",
"tooltip-feed-atom": "''Atom feed'' kanggo kaca iki",
"tooltip-t-contributions": "Deleng daftar kontribusi panganggo iki",
"tooltip-t-emailuser": "Kirimna e-mail menyang panganggo iki",
- "tooltip-t-upload": "Ngunggah gambar utawa berkas média",
- "tooltip-t-specialpages": "Daftar kabèh kaca astaméwa (kaca kusus)",
- "tooltip-t-print": "Vèrsi cithak kaca iki",
+ "tooltip-t-upload": "Unggah barkas",
+ "tooltip-t-specialpages": "Pratélaning kabèh kaca mirunggan",
+ "tooltip-t-print": "Cara cithakan kaca iki",
"tooltip-t-permalink": "Pranala permanèn kanggo révisi kaca iki",
- "tooltip-ca-nstab-main": "Ndeleng kaca artikel",
+ "tooltip-ca-nstab-main": "Deleng kaca isi",
"tooltip-ca-nstab-user": "Deleng kaca panganggo",
"tooltip-ca-nstab-media": "Ndeleng kaca média",
"tooltip-ca-nstab-special": "Iki kaca astaméwa utawa kaca kusus sing ora bisa disunting",
"tooltip-ca-nstab-project": "Deleng kaca proyèk",
- "tooltip-ca-nstab-image": "Deleng kaca berkas",
+ "tooltip-ca-nstab-image": "Deleng kaca barkas",
"tooltip-ca-nstab-mediawiki": "Ndeleng pesenan sistém",
"tooltip-ca-nstab-template": "Deleng cithakan",
"tooltip-ca-nstab-help": "Mirsani kaca pitulung",
"tooltip-rollback": "Mbalèkaké suntingan-suntingan ing kaca iki menyang kontributor pungkasan nganggo sak klik.",
"tooltip-undo": "Mbalèkaké révisi iki lan mbukak kothak panyuntingan jroning mode pratayang. Wènèhi kasempatan kanggo ngisi alesan ing kothak ringkesan.",
"tooltip-preferences-save": "Simpen préperensi",
- "tooltip-summary": "Lebokna ringkesan cendhèk",
+ "tooltip-summary": "Isi tingkesan cendhak",
"anonymous": "{{PLURAL:$1|Panganggo|panganggo}} anon ing {{SITENAME}}.",
"siteuser": "Panganggo {{SITENAME}} $1",
"anonuser": "Panganggo anonim {{SITENAME}} $1",
"pageinfo-hidden-categories": "{{PLURAL:$1|Katégori|Katégori}} kadhelikaké ($1)",
"pageinfo-templates": "{{PLURAL:$1|Templat|Templat}} yang ditransklusi ($1)",
"pageinfo-transclusions": "{{PLURAL:$1|Kaca|Kaca}} sing ditransklusi ing ($1)",
- "pageinfo-toolboxlink": "Informasi kaca",
+ "pageinfo-toolboxlink": "Katerangan kaca",
"pageinfo-redirectsto": "Dialihaké dhateng",
"pageinfo-redirectsto-info": "info",
"pageinfo-contentpage": "Diétung minangka satunggaling kaca isi",
"svg-long-desc": "Berkas SVG, nominal $1 × $2 piksel, gedhené berkas: $3",
"svg-long-desc-animated": "Berkas SVG, nominal $1 × $2 piksel, gedhené berkas: $3",
"svg-long-error": "Berkas SVG ora sah: $1",
- "show-big-image": "Berkas asli",
+ "show-big-image": "Barkas asli",
"show-big-image-preview": "Gedhéné pratayang iki: $1",
"show-big-image-other": "{{PLURAL:$2|Résolusi|Résolusi}} liya: $1.",
"show-big-image-size": "$1 × $2 piksel",
"exif-datetime": "Tanggal lan wektu pangowahan berkas",
"exif-imagedescription": "Judhul gambar",
"exif-make": "Produsèn kamera",
- "exif-model": "Modhèl kamera",
- "exif-software": "Perangkat lunak",
+ "exif-model": "Modhèl kaméra",
+ "exif-software": "Piranti alus sing dianggo",
"exif-artist": "Prodhusèn",
"exif-copyright": "Sing ndarbèni hak cipta",
"exif-exifversion": "Vèrsi Exif",
"exif-flashpixversion": "Dukungan versi Flashpix",
- "exif-colorspace": "Papan werna",
+ "exif-colorspace": "Lowah warna",
"exif-componentsconfiguration": "Teges saben komponèn",
"exif-compressedbitsperpixel": "Modhe komprèsi gambar",
- "exif-pixelydimension": "Jembaré gambar",
- "exif-pixelxdimension": "Dhuwuré gambar",
+ "exif-pixelxdimension": "Jembaré gambar",
+ "exif-pixelydimension": "Dhuwuré gambar",
"exif-usercomment": "Komentar panganggo",
"exif-relatedsoundfile": "Berkas audio sing kagandhèng",
- "exif-datetimeoriginal": "Tanggal lan wektu nggawé data",
- "exif-datetimedigitized": "Tanggal lan wektu dhigitalisasi",
+ "exif-datetimeoriginal": "Surya lan tabuh panggawéning data",
+ "exif-datetimedigitized": "Surya lan tabuh dhigitalisasi",
"exif-subsectime": "Subdetik DateTime",
"exif-subsectimeoriginal": "Subdetik DateTimeOriginal",
"exif-subsectimedigitized": "Subdetik DateTimeDigitized",
"version-entrypoints-header-entrypoint": "Tithik lebon",
"version-entrypoints-header-url": "URL",
"redirect": "Dialihake dening gambar, panganggo, kaca, utawa ID revisi",
- "redirect-legend": "Dialihake menyang gambar utawa kaca",
"redirect-summary": "Kaca astamiwa iki dialihake menyang gambar (jeneng gambar diwenehi), kaca (ID revisi utama ID kaca diwenehi), utawa kaca panganggo (ID panganggo diwenehi). Cara nganggo: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
"redirect-submit": "Nuju",
"redirect-lookup": "Golek:",
"redirect-not-exists": "Nilai ora ditemokaké",
"fileduplicatesearch": "Golèk berkas duplikat",
"fileduplicatesearch-summary": "Golèk duplikat berkas adhedhasar biji hash-é.",
- "fileduplicatesearch-legend": "Golèk duplikat",
"fileduplicatesearch-filename": "Jeneng berkas:",
"fileduplicatesearch-submit": "Golèk",
"fileduplicatesearch-info": "$1 × $2 piksel<br />Ukuran berkas: $3<br />Tipe MIME: $4",
"fileduplicatesearch-result-1": "Berkas \"$1\" ora duwé duplikat idèntik.",
"fileduplicatesearch-result-n": "Berkas \"$1\" ora ndarbèni {{PLURAL:$2|1 duplikat idèntik|$2 duplikat idèntik}}.",
"fileduplicatesearch-noresults": "Ora ana berkas mawa jeneng \"$1\" ditemokaké.",
- "specialpages": "Kaca astamiwa",
+ "specialpages": "Kaca mirunggan",
"specialpages-note-top": "Katrangan",
"specialpages-note": "* Kaca astamiwa biasa.\n* <span class=\"mw-specialpagerestricted\">Kaca astamiwa kawatesan.</span>",
"specialpages-group-maintenance": "Lapuran pangopènan",
"exif-colorspace": "ფერთა სივრცე",
"exif-componentsconfiguration": "ცალკეულ კომპონენტთა კონფიგურაცია",
"exif-compressedbitsperpixel": "სურათის შეკუმშვის რეჟიმი",
- "exif-pixelydimension": "სურათის სიგანე",
- "exif-pixelxdimension": "სურათის სიმაღლე",
+ "exif-pixelxdimension": "სურათის სიგანე",
+ "exif-pixelydimension": "სურათის სიმაღლე",
"exif-usercomment": "მომხმარებლის კომენტარი",
"exif-relatedsoundfile": "შესაბამისი აუდიო ფაილი",
"exif-datetimeoriginal": "გენერირების თარიღი და დრო",
"redirect-not-exists": "მნიშვნელობა ვერ მოიძებნა",
"fileduplicatesearch": "ერთნაირი ფაილების ძიება",
"fileduplicatesearch-summary": "ერთნაირი ფაილების ძიება ჰეშ-კოდის მიხედვით.",
- "fileduplicatesearch-legend": "დუბლიკატების ძიება",
"fileduplicatesearch-filename": "ფაილის სახელი:",
"fileduplicatesearch-submit": "ძიება",
"fileduplicatesearch-info": "$1 × $2 პიქსელზე<br />ფაილის ზომაა: $3<br />MIME-ტიპი: $4",
"exif-colorspace": "Tallunt n tiniskit",
"exif-componentsconfiguration": "Anamek n yal isger",
"exif-compressedbitsperpixel": "Askar n usekkusem n tugna",
- "exif-pixelydimension": "Tehri n tugna",
- "exif-pixelxdimension": "Taɣwzi n tugna",
+ "exif-pixelxdimension": "Tehri n tugna",
+ "exif-pixelydimension": "Taɣwzi n tugna",
"exif-usercomment": "Iwenniten n useqdac",
"exif-relatedsoundfile": "Afaylu n eslu yeqqnen",
"exif-datetimeoriginal": "Azmez n tuddma tamezwarut",
"exif-colorspace": "ٴتۇس اياسى",
"exif-componentsconfiguration": "ارقايسى قۇراش ٴمانى",
"exif-compressedbitsperpixel": "سۋرەت قىسىمداۋ ٴتارتىبى",
- "exif-pixelydimension": "سۋرەتتىڭ جارامدى ەنى",
- "exif-pixelxdimension": "سۋرەتتىڭ جارامدى بىيىكتىگى",
+ "exif-pixelxdimension": "سۋرەتتىڭ جارامدى ەنى",
+ "exif-pixelydimension": "سۋرەتتىڭ جارامدى بىيىكتىگى",
"exif-usercomment": "قاتىسۋشىنىڭ ماندەمەلەرى",
"exif-relatedsoundfile": "قاتىستى دىبىس فايلى",
"exif-datetimeoriginal": "جاسالعان كەزى",
"exif-colorspace": "Түс кеңістігі",
"exif-componentsconfiguration": "Әрқайсы құраш мәні",
"exif-compressedbitsperpixel": "Сурет қысымдау тәртібі",
- "exif-pixelydimension": "Сурет ені",
- "exif-pixelxdimension": "Сурет биіктігі",
+ "exif-pixelxdimension": "Сурет ені",
+ "exif-pixelydimension": "Сурет биіктігі",
"exif-usercomment": "Қатысушы пікірі",
"exif-relatedsoundfile": "Қатысты дыбыс файлы",
"exif-datetimeoriginal": "Жасалған кезі",
"redirect-not-exists": "Мән табылмады",
"fileduplicatesearch": "Файл телнұсқаларын іздеу",
"fileduplicatesearch-summary": "Файл хеші мағынасы негізінде телнұсқаларын іздеу.",
- "fileduplicatesearch-legend": "Телнұсқаны іздеу",
"fileduplicatesearch-filename": "Файл атауы:",
"fileduplicatesearch-submit": "Іздеу",
"fileduplicatesearch-info": "$1 × $2 пиксел (нүкте)<br />Файл өлшемі: $3<br />MIME түрі: $4",
"exif-colorspace": "Tüs ayası",
"exif-componentsconfiguration": "Ärqaýsı quraş mäni",
"exif-compressedbitsperpixel": "Swret qısımdaw tärtibi",
- "exif-pixelydimension": "Swrettiñ jaramdı eni",
- "exif-pixelxdimension": "Swrettiñ jaramdı bïiktigi",
+ "exif-pixelxdimension": "Swrettiñ jaramdı eni",
+ "exif-pixelydimension": "Swrettiñ jaramdı bïiktigi",
"exif-usercomment": "Qatıswşınıñ mändemeleri",
"exif-relatedsoundfile": "Qatıstı dıbıs faýlı",
"exif-datetimeoriginal": "Jasalğan kezi",
"exif-flashpixversion": "បានគាំទ្រ កំណែ Flashpix",
"exif-colorspace": "លំហពណ៌",
"exif-compressedbitsperpixel": "កម្រិតហាប់ នៃរូបភាព (ប៊ិត/ចំណុច)",
- "exif-pixelydimension": "ទទឹងរូបភាព",
- "exif-pixelxdimension": "កម្ពស់រូបភាព",
+ "exif-pixelxdimension": "ទទឹងរូបភាព",
+ "exif-pixelydimension": "កម្ពស់រូបភាព",
"exif-usercomment": "យោបល់របស់អ្នកប្រើប្រាស់",
"exif-relatedsoundfile": "ឯកសារសំឡេងពាក់ព័ន្ធ",
"exif-datetimeoriginal": "ពេលវេលានិងកាលបរិច្ឆេទបង្កើតទិន្នន័យ",
"Pavanaja",
"Ananth subray",
"MarcoAurelio",
- "Macofe"
+ "Macofe",
+ "రహ్మానుద్దీన్"
]
},
"tog-underline": "ಕೊಂಡಿಗಳ ಕೆಳಗೆ ಗೆರೆ ತೋರಿಸಿ",
"welcomeuser": "ಸುಸ್ವಾಗತ,$1!",
"welcomecreation-msg": "ನಿಮ್ಮ ಖಾತೆ ತೆರೆಯಲಾಗಿದೆ.ನಿಮ್ಮ [[Special:Preferences|{{SITENAME}} preferences]]ಬದಲಾಯಿಸಲು ಮರೆಯಬೇಡಿ.",
"yourname": "ನಿಮ್ಮ ಬಳಕೆಯ ಹೆಸರು",
- "userlogin-yourname": "ಬಳಕೆದಾರ ಹೆಸರು",
+ "userlogin-yourname": "ಬಳಕೆದಾರರ ಹೆಸರು",
"userlogin-yourname-ph": "ನಿಮ್ಮ ಸದಸ್ಯನಾಮ ಬರೆಯಿರಿ",
"createacct-another-username-ph": "ಬಳಕೆದಾರರ ಹೆಸರು ಬರೆಯಿರಿ",
"yourpassword": "ನಿಮ್ಮ ಪ್ರವೇಶಪದ",
"resetpass-recycled": "ದಯವಿಟ್ಟು ಈಗಿನ ಪ್ರವೇಶಪದದ ಬದಲು ಹೊಸಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಿ ಮರುಚಾಲನೆ ನೀಡಿ.",
"resetpass-temp-password": "ತಾತ್ಕಾಲಿಕ ಪ್ರವೇಶಪದ:",
"passwordreset": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿ.",
- "passwordreset-username": "ಬಳಕೆದಾರ ಹೆಸರು:",
+ "passwordreset-username": "ಬಳಕೆದಾರರ ಹೆಸರು:",
"passwordreset-domain": "ಕ್ಷೇತ್ರ:",
"passwordreset-email": "ಇ-ಮೇಲ್ ವಿಳಾಸ:",
"passwordreset-emailsentemail": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿದ ಮಿಂಚಂಚೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.",
"usereditcount": "$1{{PLURAL:$1|ಸಂಪಾದನೆ|ಸಂಪಾದನೆಗಳು}}",
"usercreated": "$1 ರಂದು $2 ಸಮಯಕ್ಕೆ {{GENDER:$3|ಸೃಷ್ಟಿಸಿದರು}}",
"newpages": "ಹೊಸ ಪುಟಗಳು",
- "newpages-username": "ಬಳಕೆದಾರ ಹೆಸರು:",
+ "newpages-username": "ಬಳಕೆದಾರರ ಹೆಸರು:",
"ancientpages": "ಹಳೆಯ ಪುಟಗಳು",
"move": "ಸ್ಥಳಾಂತರಿಸಿ",
"movethispage": "ಈ ಪುಟವನ್ನು ಸ್ಥಳಾಂತರಿಸಿ",
"usermaildisabled": "ಬಳಕೆದಾರರ ಮಿಂಚಂಚೆಯನ್ನು ನಿಷ್ಕ್ತಿಯಗೊಳಿಸಲಾಗಿದೆ",
"noemailtitle": "ಯಾವುದೇ ಇ-ಅಂಚೆ ವಿಳಾಸ ಇಲ್ಲ",
"noemailtext": "ಈ ಸದಸ್ಯ ಯಾವುದೇ ಇ-ಅಂಚೆ ವಿಳಾಸ ನೀಡಿಲ್ಲ, ಅಥವ ಬೇರೆ ಸದಸ್ಯರಿಂದ ಇ-ಅಂಚೆ ಪಡೆಯಲು ಒಪ್ಪಿಕೊಂಡಿಲ್ಲ.",
- "emailusername": "ಬಳಕೆದಾರ ಹೆಸರು:",
+ "emailusername": "ಬಳಕೆದಾರರ ಹೆಸರು:",
"emailusernamesubmit": "ಒಪ್ಪಿಸು",
"emailfrom": "ಇಂದ:",
"emailto": "ಗೆ:",
"exif-artist": "ಕರ್ತೃ",
"exif-copyright": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯನ್ನು ಹೊಂದಿರುವವರು",
"exif-exifversion": "Exif ಆವೃತ್ತಿ",
- "exif-pixelydimension": "ಭಾವಚಿತ್ರದ ಅಗಲ",
- "exif-pixelxdimension": "ಭಾವಚಿತ್ರದ ಎತ್ತರ",
+ "exif-pixelxdimension": "ಭಾವಚಿತ್ರದ ಅಗಲ",
+ "exif-pixelydimension": "ಭಾವಚಿತ್ರದ ಎತ್ತರ",
"exif-usercomment": "ಬಳಕೆದಾರನ ಟಿಪ್ಪಣಿ",
"exif-relatedsoundfile": "ಸಂಬಂಧಿತ ಧ್ವನಿ ಫೈಲು",
"exif-datetimeoriginal": "ಮಾಹಿತಿ ಸೃಷ್ಟಿಯಾದ ದಿನಾಂಕ ಮತ್ತು ಕಾಲ",
"redirect-page": "ಪುಟದ ID",
"redirect-file": "ಕಡತದ ಹೆಸರು",
"fileduplicatesearch": "ದ್ವಿಪ್ರತಿ ಫೈಲುಗಳಿಗೆ ಹುಡುಕು",
- "fileduplicatesearch-legend": "ದ್ವಿಪ್ರತಿಯನ್ನು ಹುಡುಕು",
"fileduplicatesearch-filename": "ಫೈಲಿನ ಹೆಸರು:",
"fileduplicatesearch-submit": "ಹುಡುಕು",
"fileduplicatesearch-info": "$1 × $2 ಚಿತ್ರಬಿಂದು<br />ಫೈಲಿನ ಗಾತ್ರ: $3<br />MIME ಪ್ರಕಾರ: $4",
"exif-colorspace": "색 공간",
"exif-componentsconfiguration": "각 구성 요소의 의미",
"exif-compressedbitsperpixel": "그림 압축 방식",
- "exif-pixelydimension": "그림 너비",
- "exif-pixelxdimension": "그림 높이",
+ "exif-pixelxdimension": "그림 너비",
+ "exif-pixelydimension": "그림 높이",
"exif-usercomment": "사용자 주",
"exif-relatedsoundfile": "관련된 오디오 파일",
"exif-datetimeoriginal": "날짜와 시간",
"redirect-not-exists": "값을 찾을 수 없습니다",
"fileduplicatesearch": "중복된 파일 검색",
"fileduplicatesearch-summary": "파일 해시값을 이용해 중복 파일을 검색합니다.",
- "fileduplicatesearch-legend": "중복 검색",
"fileduplicatesearch-filename": "파일 이름:",
"fileduplicatesearch-submit": "검색",
"fileduplicatesearch-info": "$1 × $2 픽셀<br />파일 크기: $3<br />MIME 유형: $4",
"exif-colorspace": "Бояу алам",
"exif-componentsconfiguration": "Хар компонентни ангыламы",
"exif-compressedbitsperpixel": "Суратны къысдырыу амалы",
- "exif-pixelydimension": "Суратны кенглиги",
- "exif-pixelxdimension": "Суратны мийиклиги",
+ "exif-pixelxdimension": "Суратны кенглиги",
+ "exif-pixelydimension": "Суратны мийиклиги",
"exif-usercomment": "Къошакъ комментарий",
"exif-relatedsoundfile": "Тауушлу комментарийни файлы",
"exif-datetimeoriginal": "Оригинал джаратыу заман",
"exif-colorspace": "Färveroum",
"exif-componentsconfiguration": "Bedüggening fun all de enkele Komponente",
"exif-compressedbitsperpixel": "Aat fun de Kompreßjohn fun däm Beld",
- "exif-pixelydimension": "De jöltije Beld-Breede en Pixelle",
- "exif-pixelxdimension": "De jöltije Beld-Hühde en Pixelle",
+ "exif-pixelxdimension": "De jöltije Beld-Breede en Pixelle",
+ "exif-pixelydimension": "De jöltije Beld-Hühde en Pixelle",
"exif-usercomment": "Aanmerkong fum Aanwender",
"exif-relatedsoundfile": "De Tondatei, di do bei jehööt",
"exif-datetimeoriginal": "Zickpunk fun de Opzeischnong fun de Date",
"redirect-not-exists": "Nit jefonge",
"fileduplicatesearch": "Sök noh dubbelte Dateie",
"fileduplicatesearch-summary": "Söhhk noh dubbelte Dateie övver dänne iere Häsh-Zahl.",
- "fileduplicatesearch-legend": "Sök noh ene dubbelte Dattei",
"fileduplicatesearch-filename": "Datteinahme:",
"fileduplicatesearch-submit": "Söhke",
"fileduplicatesearch-info": "{{PLURAL:$1|Ei Pixel|$1 Pixelle|Nit}} breed × {{PLURAL:$2|Ei Pixel|$2 Pixelle|nix}} huh<br />Dateiömfang: $3<br />de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Zoot: <code>$4</code>",
"exif-software": "Nivîsbarîya tê bikaranîn",
"exif-artist": "Nûser",
"exif-exifversion": "Versiyona exif",
- "exif-pixelydimension": "Firehiya wêne",
- "exif-pixelxdimension": "Dirêjiya wêne",
+ "exif-pixelxdimension": "Firehiya wêne",
+ "exif-pixelydimension": "Dirêjiya wêne",
"exif-usercomment": "Şîroveyên bikarhêner",
"exif-datetimedigitized": "Dema pencekîkirinê",
"exif-exposuretime-format": "$1 sanî ($2)",
"exif-imagelength": "Бийиктиги",
"exif-imagedescription": "Сүрөт аты",
"exif-artist": "Автор",
- "exif-pixelydimension": "Сүрөттүн туурасы",
- "exif-pixelxdimension": "Сүрөттүн бийиктиги",
+ "exif-pixelxdimension": "Сүрөттүн туурасы",
+ "exif-pixelydimension": "Сүрөттүн бийиктиги",
"exif-usercomment": "Колдонуучунун комментарийи",
"exif-relatedsoundfile": "Байланыштуу аудио-файл",
"exif-fnumber": "Диафрагманын саны",
"StevenJ81",
"Macofe",
"Xð",
- "Laurentianus"
+ "Laurentianus",
+ "Guillermo2149"
]
},
"tog-underline": "Versores linea denotandi:",
"underline-default": "Defalta navigatri interretialis",
"editfont-style": "Stilus:",
"editfont-default": "iuxta navigatrum",
+ "editfont-sansserif": "Fons Sans-serif",
+ "editfont-serif": "Fons Serif",
"sunday": "dies Solis",
"monday": "dies Lunae",
"tuesday": "dies Martis",
"october-date": "$1 Octobris",
"november-date": "$1 Novembris",
"december-date": "$1 Decembris",
+ "period-am": "AM",
+ "period-pm": "PM",
"pagecategories": "{{PLURAL:$1|Categoria|Categoriae}}",
"category_header": "Paginae in categoria \"$1\"",
"subcategories": "Subcategoriae",
"morenotlisted": "Hic index mancus est.",
"mypage": "Pagina",
"mytalk": "Disputatio",
- "anontalk": "Disputatio huius IP",
+ "anontalk": "Disputatio",
"navigation": "Navigatio",
"and": " et",
"qbfind": "Invenire",
"hidetoc": "celare",
"collapsible-collapse": "Collabi",
"collapsible-expand": "Dilatare",
+ "confirmable-yes": "Sic",
"thisisdeleted": "Videre aut restituere $1?",
"viewdeleted": "Visne conspicere $1?",
"restorelink": "{{PLURAL:$1|unam redactionem deletam|$1 redactiones deletas}}",
"exif-artist": "Auctor",
"exif-exifversion": "Redactio modi \"Exif\"",
"exif-colorspace": "Spatium colorimetricum",
- "exif-pixelydimension": "Amplitudo imaginis",
- "exif-pixelxdimension": "Altitudo imaginis",
+ "exif-pixelxdimension": "Amplitudo imaginis",
+ "exif-pixelydimension": "Altitudo imaginis",
"exif-usercomment": "Adnota usoris",
"exif-relatedsoundfile": "Fasciculus soni relatus",
"exif-datetimeoriginal": "Dies et tempus creationis",
"version-license": "Permissio",
"version-software-product": "Productum",
"version-software-version": "Versio",
- "fileduplicatesearch-legend": "Duplicatum quaerere",
"fileduplicatesearch-filename": "Fasciculi nomen:",
"fileduplicatesearch-submit": "Quaerere",
"fileduplicatesearch-info": "$1 × $2 elementa imaginalia<br />Magnitudo fasciculi: $3<br />Typus MIME: $4",
"noemail": "De Benotzer \"$1\" huet keng E-Mail-Adress uginn.",
"noemailcreate": "Dir musst eng valabel E-Mail-Adress uginn",
"passwordsent": "Een neit Passwuert gouf un déi fir de Benotzer \"$1\" gespäichert E-Mailadress geschéckt.\nMellt Iech w.e.g. domat un, soubal Dir et kritt hutt.",
- "blocked-mailpassword": "Déi vun Iech benotzten IP-Adress ass fir d'Ännere vu Säite gespaart. Fir Mëssbrauch ze verhënneren, gouf d'Méiglechkeet fir een neit Passwuert unzefroen och gespaart.",
+ "blocked-mailpassword": "Är IP-Adress ass fir d'Ännere vu Säite gespaart. Fir Mëssbrauch ze verhënneren, gouf d'Méiglechkeet fir een neit Passwuert vun dëser IP-Adress aus unzefroen och gespaart.",
"eauthentsent": "Eng Confirmatiouns-E-Mail gouf un déi Adress geschéckt déi Dir uginn hutt.\n\nIer iergendeng E-Mail vun anere Benotzer op dee Kont geschéckt ka ginn, musst Dir als éischt d'Instructiounen an der Confirmatiouns-E-Mail befollegen, fir ze bestätegen datt de Kont wierklech Ären eegenen ass.",
"throttled-mailpassword": "An {{PLURAL:$1|der leschter Stonn|de leschte(n) $1 Stonnen}} eng E-Mail verschéckt fir d'Passwuert zréckzesetzen.\nFir de Mëssbrauch vun dëser Funktioun ze verhënneren kann nëmmen all {{PLURAL:$1|Stonn|$1 Stonnen}} sou eng Mail verschéckt ginn.",
"mailerror": "Feeler beim Schécke vun der E-Mail: $1",
"gender-unknown": "Wann Dir ernimmt gitt da benotzt d'Software do wou et méiglech ass geschlechtsneutral Wierder",
"gender-male": "Hien ännert Wikisäiten",
"gender-female": "Si ännert Wikisäiten",
- "prefs-help-gender": "Fakultativ:\nD'Software benotzt seng Wäerter fir Iech unzeschwätzen a fir vun Iech vis-a-vis vun Aneren grammatesch ''Gender-korrekt'' ze schwätzen. \n\nDës Informatioun ass ëffentlech.",
+ "prefs-help-gender": "Fakultativ:\nD'Software benotzt seng Wäerter fir Iech unzerieden a fir vun Iech vis-a-vis vun Anere grammatesch ''Gender-korrekt'' ze sinn. \n\nDës Informatioun ass ëffentlech.",
"email": "E-Mail",
"prefs-help-realname": "De richtegen Numm ass fakultativ.\nWann en ugi gouf, gëtt e benotzt fir Iech Är Kontributiounen zouzeuerdnen.",
"prefs-help-email": "D'E-Mailadress ass fakultativ, awer si gëtt gebraucht fir Iech Äert Passwuert ze mailen, wann Dir et géift vergiessen.",
"ipb-unblock": "Spär vun enger IP-Adress oder engem Benotzer ophiewen",
"ipb-blocklist": "Kuckt aktuell Spären",
"ipb-blocklist-contribs": "Kontributioune vum {{GENDER:$1|$1}}",
+ "ipb-blocklist-duration-left": "$1 iwwreg",
"unblockip": "Spär vum Benotzer ophiewen",
"unblockiptext": "Benotzt dëse Formulaire fir enger IP-Adress oder engem Benotzer seng Spär opzehiewen.",
"ipusubmit": "Des Spär ophiewen",
"exif-colorspace": "Faarfraum",
"exif-componentsconfiguration": "Bedeitung vun eenzelne Komponenten",
"exif-compressedbitsperpixel": "Kompriméiert Bite pro Pixel",
- "exif-pixelydimension": "Breet vum Bild",
- "exif-pixelxdimension": "Héicht vum Bild",
+ "exif-pixelxdimension": "Breet vum Bild",
+ "exif-pixelydimension": "Héicht vum Bild",
"exif-usercomment": "Bemierkunge vum Benotzer",
"exif-relatedsoundfile": "Tounfichier deen dozou gehéiert",
"exif-datetimeoriginal": "Erfaassungszäitpunkt",
"redirect-not-exists": "Wäert net fonnt",
"fileduplicatesearch": "No duebele Fichiere sichen",
"fileduplicatesearch-summary": "Sichen no Doublone vu Fichieren op der Basis vun hirem ''Hash-Wäert''.",
- "fileduplicatesearch-legend": "No engem Doublon sichen",
"fileduplicatesearch-filename": "Numm vum Fichier:",
"fileduplicatesearch-submit": "Sichen",
"fileduplicatesearch-info": "$1 × $2 Pixel<br />Gréisst vum Fichier: $3<br />MIME Typ: $4",
"logentry-newusers-autocreate": "De Benotzerkont $1 gouf automatesch {{GENDER:$2|ugeluecht}}",
"logentry-protect-protect": "$1 {{GENDER:$2|huet}} d'Säit $3 $4 gespaart",
"logentry-protect-protect-cascade": "$1 {{GENDER:$2|huet}} d'Säit $3 $4 gepaart [Kaskadespär]",
- "logentry-rights-rights": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen de Benotzer $3 gehéiert vu(n) $4 op $5 geännert",
+ "logentry-rights-rights": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen {{GENDER:$3|d'|de}} $3 gehéiert vu(n) $4 op $5 geännert",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|huet}} d'Gruppen zou deenen de Benotzer $3 gehéiert geännert",
"logentry-rights-autopromote": "De Benotzer $1 {{GENDER:$2|krut}} d'Benotzerrechter automatesch vu(n) $4 op $5 geännert",
"logentry-upload-upload": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
"exif-colorspace": "Kläörruumde",
"exif-componentsconfiguration": "Beteikenis van edere componènt",
"exif-compressedbitsperpixel": "Cómpressiemeneer bie dit plaetje",
- "exif-pixelydimension": "Aafbeildingsbrèdje",
- "exif-pixelxdimension": "Aafbeildingsheugdje",
+ "exif-pixelxdimension": "Aafbeildingsbrèdje",
+ "exif-pixelydimension": "Aafbeildingsheugdje",
"exif-usercomment": "Opmerkinge",
"exif-relatedsoundfile": "Biebeheurendj audiobestandj",
"exif-datetimeoriginal": "Datum en momint van verwèkking",
"exif-colorspace": "فضای رۀنگی",
"exif-componentsconfiguration": "معنی هر یک از مؤلفهها",
"exif-compressedbitsperpixel": "حالت فشردهسازی تصویر",
- "exif-pixelydimension": "پهنای تصویر",
- "exif-pixelxdimension": "بلندی تصویر",
+ "exif-pixelxdimension": "پهنای تصویر",
+ "exif-pixelydimension": "بلندی تصویر",
"exif-usercomment": "توضیحات کاربر",
"exif-relatedsoundfile": "پروندهٔ صوتی مربوط",
"exif-datetimeoriginal": "تاریخ و زمان تولید دادهها",
"exif-colorspace": "رئن ورگه",
"exif-componentsconfiguration": "مئنی هر اندوم",
"exif-compressedbitsperpixel": "شکل جمع و جیل کردن عسگ",
- "exif-pixelydimension": "پئنا عسگ",
- "exif-pixelxdimension": "درازا عسگ",
+ "exif-pixelxdimension": "پئنا عسگ",
+ "exif-pixelydimension": "درازا عسگ",
"exif-usercomment": "ویر و باوریا کارور",
"exif-relatedsoundfile": "جانیا دنگ دار مرتوط",
"exif-datetimeoriginal": "دمون و وخت راس بیئن دونسمنیا",
"exif-colorspace": "Spalvų pristatymas",
"exif-componentsconfiguration": "kiekvieno komponento reikšmė",
"exif-compressedbitsperpixel": "Paveikslėlio suspaudimo režimas",
- "exif-pixelydimension": "Paveikslėlio plotis",
- "exif-pixelxdimension": "Vaizdo aukštis",
+ "exif-pixelxdimension": "Paveikslėlio plotis",
+ "exif-pixelydimension": "Vaizdo aukštis",
"exif-usercomment": "Naudotojo komentarai",
"exif-relatedsoundfile": "Susijusi garso byla",
"exif-datetimeoriginal": "Duomenų generavimo data ir laikas",
"exif-colorspace": "Rawng hmun",
"exif-componentsconfiguration": "Péngtinte awmzia",
"exif-compressedbitsperpixel": "Lem sàwrzìmphung",
- "exif-pixelydimension": "Lem zauzáwng",
- "exif-pixelxdimension": "Lem sànzáwng",
+ "exif-pixelxdimension": "Lem zauzáwng",
+ "exif-pixelydimension": "Lem sànzáwng",
"exif-usercomment": "Hmangtu kamchhuak",
"exif-relatedsoundfile": "Ritaksa laichinte",
"exif-datetimeoriginal": "Hriattirna siamchhuah hun leh ni",
"exif-colorspace": "Krāsu telpa",
"exif-componentsconfiguration": "Katras sastāvdaļas nozīme",
"exif-compressedbitsperpixel": "Attēla kompresijas pakāpe",
- "exif-pixelydimension": "Attēla platums",
- "exif-pixelxdimension": "Attēla augstums",
+ "exif-pixelxdimension": "Attēla platums",
+ "exif-pixelydimension": "Attēla augstums",
"exif-usercomment": "Lietotāja komentāri",
"exif-relatedsoundfile": "Saistītais skaņas fails",
"exif-datetimeoriginal": "Izveidošanas datums un laiks",
"redirect-not-exists": "Vērtība nav atrasta",
"fileduplicatesearch": "Meklēt failu kopijas",
"fileduplicatesearch-summary": "Meklē dublējošos failus, izmantojot uz jaucējfunkcijas vērtības.",
- "fileduplicatesearch-legend": "Meklēt kopiju",
"fileduplicatesearch-filename": "Faila vārds:",
"fileduplicatesearch-submit": "Meklēt",
"fileduplicatesearch-info": "$1 × $2 pikseļi<br />Faila izmērs: $3<br />MIME tips: $4",
"exif-colorspace": "रंगक स्थान",
"exif-componentsconfiguration": "सभ घटकक अर्थ",
"exif-compressedbitsperpixel": "चित्र संकुचन अवस्था",
- "exif-pixelydimension": "तस्वीरक चौडाई",
- "exif-pixelxdimension": "तस्वीरक ऊँचाई",
+ "exif-pixelxdimension": "तस्वीरक चौडाई",
+ "exif-pixelydimension": "तस्वीरक ऊँचाई",
"exif-usercomment": "सदस्यक टिप्पणी",
"exif-relatedsoundfile": "संबंधित ध्वनि फ़ाईल",
"exif-datetimeoriginal": "डाटा बनाबैक तारीख आ समय",
"exif-colorspace": "Тюсонь ёткась",
"exif-componentsconfiguration": "Эрь компонентонь асуц",
"exif-compressedbitsperpixel": "Архтофксонь компрезийамась",
- "exif-pixelydimension": "Кондясти архтофксонь келец",
- "exif-pixelxdimension": "Кондясти архтофксонь серец",
+ "exif-pixelxdimension": "Кондясти архтофксонь келец",
+ "exif-pixelydimension": "Кондясти архтофксонь серец",
"exif-usercomment": "Тиить тяштьксонза",
"exif-relatedsoundfile": "Сотф аудио файлсь",
"exif-datetimeoriginal": "Шинь тиевомать шись ди пингсь",
"exif-colorspace": "Valan-doko",
"exif-componentsconfiguration": "Dikan'ny mpanorina tsirairay",
"exif-compressedbitsperpixel": "Fomba famintinan-tsary",
- "exif-pixelydimension": "Haavon-tsary",
- "exif-pixelxdimension": "Halala-tsary",
+ "exif-pixelxdimension": "Haavon-tsary",
+ "exif-pixelydimension": "Halala-tsary",
"exif-usercomment": "Diniky ny mpikambana",
"exif-relatedsoundfile": "Rakitra audio miaraka",
"exif-datetimeoriginal": "Daty fangalana niaviana",
"exif-colorspace": "Ruang warna",
"exif-componentsconfiguration": "Arti tiok komponen",
"exif-compressedbitsperpixel": "Mode kompresi gamba",
- "exif-pixelydimension": "Leba gamba",
- "exif-pixelxdimension": "Tinggi gamba",
+ "exif-pixelxdimension": "Leba gamba",
+ "exif-pixelydimension": "Tinggi gamba",
"exif-usercomment": "Komen pangguno",
"exif-relatedsoundfile": "Berkas audio nan bahubuangan",
"namespacesall": "sadonyo",
"shared-repo": "заедничко складиште",
"shared-repo-name-wikimediacommons": "Ризницата",
"filepage.css": "/* Тука поставените каскадни стилски страници (CSS) се вклучени во описната страница на податотеката, како и на клиентските викија */",
- "upload-disallowed-here": "Ð\9dажалоÑ\81Ñ\82, не можете да презапишете врз сликава.",
+ "upload-disallowed-here": "Ð\97а жал, не можете да презапишете врз сликава.",
"filerevert": "Врати $1",
"filerevert-legend": "Врати податотека",
"filerevert-intro": "Ја враќате '''[[Media:$1|$1]]''' на [$4 верзијата од $3, $2].",
"import-logentry-upload-detail": "{{PLURAL:$1|Увезена е една преработка|Увезени се $1 преработки}}",
"import-logentry-interwiki-detail": "{{PLURAL:$1|Увезена е една преработка|Увезени се $1 преработки}} од $2",
"javascripttest": "Проба на JavaScript",
- "javascripttest-pagetext-noframework": "Оваа страница е резервирана за вршење на проби со JavaScript.",
- "javascripttest-pagetext-unknownframework": "Непозната рамка „$1“.",
"javascripttest-pagetext-unknownaction": "Непознато дејство „$1“.",
- "javascripttest-pagetext-frameworks": "Изберете една од следниве рамки: $1",
- "javascripttest-pagetext-skins": "Одберете со кое руво да ја направите пробата:",
"javascripttest-qunit-intro": "Вид. [$1 документација на испробувањето] на mediawiki.org.",
"tooltip-pt-userpage": "{{GENDER:|Вашата}} корисничка страница",
"tooltip-pt-anonuserpage": "Корисничка страница за IP-адресата од која уредувате",
"exif-colorspace": "Боен простор",
"exif-componentsconfiguration": "Значење на секој боен дел",
"exif-compressedbitsperpixel": "Режим на набивање на сликата",
- "exif-pixelydimension": "Ширина на сликата",
- "exif-pixelxdimension": "Висина на сликата",
+ "exif-pixelxdimension": "Ширина на сликата",
+ "exif-pixelydimension": "Висина на сликата",
"exif-usercomment": "Кориснички коментари",
"exif-relatedsoundfile": "Поврзана аудиоснимка",
"exif-datetimeoriginal": "Датум и време на сликање",
"version-libraries-description": "Опис",
"version-libraries-authors": "Автори",
"redirect": "Пренасочување по податотеки, корисник или назнака на преработка",
- "redirect-legend": "Пренасочување кон податотека или страница",
"redirect-summary": "Оваа службена страница пренасочува кон податотека (се задава името), страница (се задава назнаката на преработката или страницата) или корисничка странца (се задава бројчената назнака на корисникот). Употреба: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] или [[{{#Special:Redirect}}/user/101]].",
"redirect-submit": "Дај",
"redirect-lookup": "Пребарај:",
"redirect-not-exists": "Вредноста не е најдена",
"fileduplicatesearch": "Барање на дуплирани податотеки",
"fileduplicatesearch-summary": "Пребарување на дуплирани податотеки по тарабни вредности.",
- "fileduplicatesearch-legend": "Барање на дупликат",
"fileduplicatesearch-filename": "Податотека:",
"fileduplicatesearch-submit": "Барај",
"fileduplicatesearch-info": "$1 × $2 пиксели<br />Големина на податотеката: $3<br />MIME-тип: $4",
"exif-colorspace": "കളർ സ്പേസ്",
"exif-componentsconfiguration": "ഓരോ ഘടകത്തിന്റേയും അർത്ഥം",
"exif-compressedbitsperpixel": "ചിത്രം ചുരുക്കുവാനുപയോഗിച്ചിരിക്കുന്ന മാർഗ്ഗം",
- "exif-pixelydimension": "ചിത്രത്തിന്റെ വീതി",
- "exif-pixelxdimension": "ചിത്രത്തിന്റെ ഉയരം",
+ "exif-pixelxdimension": "ചിത്രത്തിന്റെ വീതി",
+ "exif-pixelydimension": "ചിത്രത്തിന്റെ ഉയരം",
"exif-usercomment": "ഉപയോക്താവിന്റെ കുറിപ്പുകൾ",
"exif-relatedsoundfile": "ഇതുമായി ബന്ധമുള്ള ഓഡിയോ പ്രമാണം",
"exif-datetimeoriginal": "ഡാറ്റ സൃഷ്ടിക്കപ്പെട്ട തീയതിയും സമയവും",
"exif-colorspace": "Өнгөний завсар",
"exif-componentsconfiguration": "Бүх бүрэлдэхүүн хэсгүүдийн утга",
"exif-compressedbitsperpixel": "Зургийн файлыг шахах арга",
- "exif-pixelydimension": "Зургийн өргөн",
- "exif-pixelxdimension": "Зургийн өндөр",
+ "exif-pixelxdimension": "Зургийн өргөн",
+ "exif-pixelydimension": "Зургийн өндөр",
"exif-usercomment": "Хэрэглэгчдийн тэмдэглэл",
"exif-relatedsoundfile": "Холбоотой дуун файл",
"exif-datetimeoriginal": "Мэдээллийг үүсгэсэн огноо ба цаг",
"exif-colorspace": "रंगांकन (कलर स्पेस)",
"exif-componentsconfiguration": "प्रत्येक घटकाचा अर्थ",
"exif-compressedbitsperpixel": "चित्र आकुंचन स्थिती",
- "exif-pixelydimension": "आकृतीची सुयोग्य रूंदी",
- "exif-pixelxdimension": "आकृतीची सुयोग्य उंची",
+ "exif-pixelxdimension": "आकृतीची सुयोग्य रूंदी",
+ "exif-pixelydimension": "आकृतीची सुयोग्य उंची",
"exif-usercomment": "सदस्य प्रतिक्रीया",
"exif-relatedsoundfile": "संबधीत ध्वनी संचिका",
"exif-datetimeoriginal": "विदा निर्मितीची तारीख आणि वेळ",
"exif-colorspace": "Ruang warna",
"exif-componentsconfiguration": "Maksud setiap komponen",
"exif-compressedbitsperpixel": "Mod pemampatan imej",
- "exif-pixelydimension": "Lebar imej",
- "exif-pixelxdimension": "Tinggi imej",
+ "exif-pixelxdimension": "Lebar imej",
+ "exif-pixelydimension": "Tinggi imej",
"exif-usercomment": "Komen pengguna",
"exif-relatedsoundfile": "Fail audio berkaitan",
"exif-datetimeoriginal": "Tarikh dan waktu penjanaan data",
"exif-colorspace": "Spazju tal-kuluri",
"exif-componentsconfiguration": "Tfissira dwar kull komponent",
"exif-compressedbitsperpixel": "Għamla tal-kompressjoni tal-istampa",
- "exif-pixelydimension": "Wisa' tal-istampa",
- "exif-pixelxdimension": "Għoli tal-istama",
+ "exif-pixelxdimension": "Wisa' tal-istampa",
+ "exif-pixelydimension": "Għoli tal-istama",
"exif-usercomment": "Noti tal-utent",
"exif-relatedsoundfile": "Fajl relatat mal-ismiegħ",
"exif-datetimeoriginal": "Data u ħin tal-ħolqien tad-data",
"exif-copyright": "မူပိုင်ခွင့်ပိုင်ရှင်",
"exif-exifversion": "Exif ဗားရှင်း",
"exif-colorspace": "အရောင်နေရာ",
- "exif-pixelydimension": "ပုံအကျယ်",
- "exif-pixelxdimension": "ပုံအမြင့်",
+ "exif-pixelxdimension": "ပုံအကျယ်",
+ "exif-pixelydimension": "ပုံအမြင့်",
"exif-usercomment": "အသုံးပြုသူ မှတ်ချက်များ",
"exif-relatedsoundfile": "ဆက်နွယ်သော အသံဖိုင်",
"exif-datetimeoriginal": "ဒေတာဖန်တီးခဲ့သော နေ့စွဲနှင့် အချိန်",
"version-software-product": "ထုတ်ကုန်",
"version-software-version": "ဗားရှင်း",
"fileduplicatesearch": "နှစ်ခုထပ်နေသောဖိုင်များကို ရှာရန်",
- "fileduplicatesearch-legend": "နှစ်ခုထပ်နေသည်ကို ရှာရန်",
"fileduplicatesearch-filename": "ဖိုင်အမည် -",
"fileduplicatesearch-submit": "ရှာဖွေရန်",
"specialpages": "အထူး စာမျက်နှာများ",
"exif-artist": "Теицязо",
"exif-copyright": "Копия теемань видечинь кирдицясь",
"exif-colorspace": "Тюс ютко",
- "exif-pixelydimension": "Артовксонть келезэ",
- "exif-pixelxdimension": "Артовксонть сэрезэ",
+ "exif-pixelxdimension": "Артовксонть келезэ",
+ "exif-pixelydimension": "Артовксонть сэрезэ",
"exif-usercomment": "Теицянь мельть-арьсемат",
"exif-exposuretime": "Валдомтомань (Экспозициянь) шка",
"exif-fnumber": "Диафрагмань числась",
"exif-colorspace": "Spazio d' 'e culore",
"exif-componentsconfiguration": "Significato d'ogne componente",
"exif-compressedbitsperpixel": "Modo 'e compressione 'e l'immaggene",
- "exif-pixelydimension": "Larghezza 'e l'immaggene",
- "exif-pixelxdimension": "Autezza 'e l'immaggene",
+ "exif-pixelxdimension": "Larghezza 'e l'immaggene",
+ "exif-pixelydimension": "Autezza 'e l'immaggene",
"exif-usercomment": "Note 'e ll'utente",
"exif-relatedsoundfile": "File audio cullegato",
"exif-datetimeoriginal": "Data e ora d' 'a criazione d' 'e date",
"redirect-not-exists": "Valore nun accucchiato",
"fileduplicatesearch": "Ascìa 'e file duprecate",
"fileduplicatesearch-summary": "Circa pe' file duprecate cu bbase 'o valore hash.",
- "fileduplicatesearch-legend": "Circa pe' nu duprecato",
"fileduplicatesearch-filename": "Nomme d' 'o file",
"fileduplicatesearch-submit": "Truova",
"fileduplicatesearch-info": "$1 × $2 pixel, dimenzione d' 'o file: $3<br />tipo MIME: $4",
"exif-colorspace": "Fargerom",
"exif-componentsconfiguration": "Betydning av hver komponent",
"exif-compressedbitsperpixel": "Bildekompresjonsmodus",
- "exif-pixelydimension": "Bildebredde",
- "exif-pixelxdimension": "Bildehøyde",
+ "exif-pixelxdimension": "Bildebredde",
+ "exif-pixelydimension": "Bildehøyde",
"exif-usercomment": "Brukerkommentarer",
"exif-relatedsoundfile": "Relatert lydfil",
"exif-datetimeoriginal": "Dato og tid for datagenerering",
"exif-colorspace": "Kleurruumte",
"exif-componentsconfiguration": "Betekenisse van elk compenent",
"exif-compressedbitsperpixel": "Beeldkompressiemethode",
- "exif-pixelydimension": "Aofbeeldingsbreedte",
- "exif-pixelxdimension": "Aofbeeldingsheugte",
+ "exif-pixelxdimension": "Aofbeeldingsbreedte",
+ "exif-pixelydimension": "Aofbeeldingsheugte",
"exif-usercomment": "Opmarkingen",
"exif-relatedsoundfile": "Biebeheurend geluudsbestaand",
"exif-datetimeoriginal": "Tiedstip van datagenerasie",
"redirect-not-exists": "Weerde niet evunnen",
"fileduplicatesearch": "Dubbele bestaanden zeuken",
"fileduplicatesearch-summary": "Dubbele bestaanden zeuken op baosis van de hashweerde.",
- "fileduplicatesearch-legend": "Dubbele bestaanden zeuken",
"fileduplicatesearch-filename": "Bestaandsnaam:",
"fileduplicatesearch-submit": "Zeuken",
"fileduplicatesearch-info": "$1 × $2 beeldpunten<br />Bestaandsgrootte: $3<br />MIME-type: $4",
"exif-colorspace": "Farvruum",
"exif-componentsconfiguration": "Bedüden vun elk Kumponent",
"exif-compressedbitsperpixel": "Komprimeerte Bits je Pixel",
- "exif-pixelydimension": "Gellen Bildbreed",
- "exif-pixelxdimension": "Gellen Bildhööchd",
+ "exif-pixelxdimension": "Gellen Bildbreed",
+ "exif-pixelydimension": "Gellen Bildhööchd",
"exif-usercomment": "Brukerkommentar",
"exif-relatedsoundfile": "Tohörige Toondatei",
"exif-datetimeoriginal": "Tiet vun de Opnahm",
"exif-colorspace": "वर्ण स्थान",
"exif-componentsconfiguration": "प्रत्येक घटकको अर्थ",
"exif-compressedbitsperpixel": "चित्र सम्पीडन मोड",
- "exif-pixelydimension": "चित्रको चौड़ाई",
- "exif-pixelxdimension": "चित्रको उचाई",
+ "exif-pixelxdimension": "चित्रको चौड़ाई",
+ "exif-pixelydimension": "चित्रको उचाई",
"exif-usercomment": "प्रयोगकर्ताका टिप्पणखरु:",
"exif-relatedsoundfile": "सम्बन्धित अडियो फाइल",
"exif-datetimeoriginal": "डेटा सञ्चालनको मिति र समय",
"exif-software": "छ्यलातःगु सफ्तवेयर",
"exif-artist": "च्वमि",
"exif-copyright": "लेखाधिकार थुवा",
- "exif-pixelydimension": "किपा ब्याः",
- "exif-pixelxdimension": "किपा जाः",
+ "exif-pixelxdimension": "किपा ब्याः",
+ "exif-pixelydimension": "किपा जाः",
"exif-dc-date": "तिथि",
"namespacesall": "सकल",
"autosumm-new": "न्हुगु पौ: $1",
"exif-colorspace": "Kleurruimte",
"exif-componentsconfiguration": "Betekenis van elke component",
"exif-compressedbitsperpixel": "Beeldcompressiemethode",
- "exif-pixelydimension": "Afbeeldingsbreedte",
- "exif-pixelxdimension": "Afbeeldingshoogte",
+ "exif-pixelxdimension": "Afbeeldingsbreedte",
+ "exif-pixelydimension": "Afbeeldingshoogte",
"exif-usercomment": "Opmerkingen",
"exif-relatedsoundfile": "Bijbehorend audiobestand",
"exif-datetimeoriginal": "Tijdstip gegevensaanmaak",
"exif-colorspace": "Fargerom",
"exif-componentsconfiguration": "Komponentanalyse",
"exif-compressedbitsperpixel": "Komprimerte bits pr. pixel",
- "exif-pixelydimension": "Biletbreidd",
- "exif-pixelxdimension": "Bilethøgd",
+ "exif-pixelxdimension": "Biletbreidd",
+ "exif-pixelydimension": "Bilethøgd",
"exif-usercomment": "Brukarkommentarar",
"exif-relatedsoundfile": "Tilknytt lydfil",
"exif-datetimeoriginal": "Dato og tid laga",
"exif-colorspace": "Espaci colorimetric",
"exif-componentsconfiguration": "Significacion de cada compausanta",
"exif-compressedbitsperpixel": "Mòde de compression de l’imatge",
- "exif-pixelydimension": "Largor de l’imatge",
- "exif-pixelxdimension": "Nautor de l’imatge",
+ "exif-pixelxdimension": "Largor de l’imatge",
+ "exif-pixelydimension": "Nautor de l’imatge",
"exif-usercomment": "Comentaris de l'utilizaire",
"exif-relatedsoundfile": "Fichièr àudio associat",
"exif-datetimeoriginal": "Data e ora de la generacion de donadas",
"exif-colorspace": "ରଙ୍ଗ ଫାଙ୍କା ଜାଗା",
"exif-componentsconfiguration": "ପ୍ରତିତି ଉପାଦାନର ଅର୍ଥ",
"exif-compressedbitsperpixel": "ଛବି ସଙ୍କୋଚନ ଅବସ୍ଥା",
- "exif-pixelydimension": "ଛବି ଓସାର",
- "exif-pixelxdimension": "ଛବି ଉଚ୍ଚତା",
+ "exif-pixelxdimension": "ଛବି ଓସାର",
+ "exif-pixelydimension": "ଛବି ଉଚ୍ଚତା",
"exif-usercomment": "ସଭ୍ୟ ମତାମତ",
"exif-relatedsoundfile": "ସମ୍ବନ୍ଧିତ ଶବ୍ଦ ଫାଇଲ",
"exif-datetimeoriginal": "ତଥ୍ୟ ତିଆରିହେବାର ତାରିଖ ଓ ସମୟ",
"exif-copyright": "ਕਾਪੀਰਾਈਟ ਟਾਇਟਲ",
"exif-exifversion": "ਐਗਜ਼ਿਫ਼ ਦਾ ਰੂਪ",
"exif-colorspace": "ਰੰਗ ਸਪੇਸ",
- "exif-pixelydimension": "ਤਸਵੀਰ ਦੀ ਚੌੜਾਈ",
- "exif-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ",
+ "exif-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਚੌੜਾਈ",
+ "exif-pixelydimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ",
"exif-usercomment": "ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ",
"exif-relatedsoundfile": "ਮਿਲਦੀ-ਜੁਲਦੀ ਆਡੀਓ ਫ਼ਾਈਲ",
"exif-datetimeoriginal": "ਡਾਟਾ ਦੇ ਬਣਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
"exif-colorspace": "Pirinan kule (color space)",
"exif-componentsconfiguration": "Kabaldugan ning balang dake (component)",
"exif-compressedbitsperpixel": "Paralan/ayus pamamitpit larawan (image compression mode)",
- "exif-pixelydimension": "Ustung lapad ning larawan",
- "exif-pixelxdimension": "Ustung katas ning larawan",
+ "exif-pixelxdimension": "Ustung lapad ning larawan",
+ "exif-pixelydimension": "Ustung katas ning larawan",
"exif-usercomment": "Komentu da ring talagamit",
"exif-relatedsoundfile": "Makaugneng simpan a katni (audio file)",
"exif-datetimeoriginal": "Petsa ampong oras ning pamaglalang king data (data generation)",
"exif-colorspace": "Przestrzeń kolorów",
"exif-componentsconfiguration": "Znaczenie składowych",
"exif-compressedbitsperpixel": "Skompresowanych bitów na piksel",
- "exif-pixelydimension": "Prawidłowa szerokość obrazu",
- "exif-pixelxdimension": "Prawidłowa wysokość obrazu",
+ "exif-pixelxdimension": "Prawidłowa szerokość obrazu",
+ "exif-pixelydimension": "Prawidłowa wysokość obrazu",
"exif-usercomment": "Komentarz użytkownika",
"exif-relatedsoundfile": "Powiązany plik audio",
"exif-datetimeoriginal": "Data i czas utworzenia oryginału",
"redirect-not-exists": "Nie znaleziono wartości",
"fileduplicatesearch": "Wyszukiwanie duplikatów pliku",
"fileduplicatesearch-summary": "Wyszukiwanie duplikatów pliku na podstawie wartości funkcji skrótu.",
- "fileduplicatesearch-legend": "Szukaj duplikatów pliku",
"fileduplicatesearch-filename": "Nazwa pliku:",
"fileduplicatesearch-submit": "Szukaj",
"fileduplicatesearch-info": "$1 × $2 pikseli<br />Wielkość pliku: $3<br />Typ MIME: $4",
"exif-colorspace": "Spassi dij color",
"exif-componentsconfiguration": "Significà ëd minca component",
"exif-compressedbitsperpixel": "Sistema ëd compression dle figure",
- "exif-pixelydimension": "Larghëssa dla figura",
- "exif-pixelxdimension": "Autëssa dla figura",
+ "exif-pixelxdimension": "Larghëssa dla figura",
+ "exif-pixelydimension": "Autëssa dla figura",
"exif-usercomment": "Nòte lìbere",
"exif-relatedsoundfile": "Archivi sonor colegà",
"exif-datetimeoriginal": "Data e ora dla generassion dij dat",
"exif-colorspace": "رنگ سپیس",
"exif-componentsconfiguration": "ہر انگ دا مطلب",
"exif-compressedbitsperpixel": "امیج کمپریشن موڈ",
- "exif-pixelydimension": "امیج چوڑائی",
- "exif-pixelxdimension": "امیج اچائی",
+ "exif-pixelxdimension": "امیج چوڑائی",
+ "exif-pixelydimension": "امیج اچائی",
"exif-usercomment": "ورتن آلے دی صلاع",
"exif-relatedsoundfile": "رلدی آڈیو فائل",
"exif-datetimeoriginal": "تریخ تے ویلہ ڈیٹا جنریشن دا",
"exif-colorspace": "Bārwis plattibi",
"exif-componentsconfiguration": "Kōmpunēntin zentlisnā",
"exif-compressedbitsperpixel": "Bildes kōmpresiōnis wīds",
- "exif-pixelydimension": "Tikrōmiskan bildes plattu",
- "exif-pixelxdimension": "Tikrōmiskan bildes aūktan",
+ "exif-pixelxdimension": "Tikrōmiskan bildes plattu",
+ "exif-pixelydimension": "Tikrōmiskan bildes aūktan",
"exif-usercomment": "Tērpautajas kumentārai",
"exif-relatedsoundfile": "Sēitan audiō zūrbrukis",
"exif-datetimeoriginal": "Ōriginālas teīksnas dātan be kerdā",
"exif-copyright": "د رښتو خاوند",
"exif-exifversion": "Exif بڼه",
"exif-colorspace": "رنگ تشيال",
- "exif-pixelydimension": "د انځور سور",
- "exif-pixelxdimension": "د انځور جگوالی",
+ "exif-pixelxdimension": "د انځور سور",
+ "exif-pixelydimension": "د انځور جگوالی",
"exif-usercomment": "د کارن تبصرې",
"exif-relatedsoundfile": "اړونده غږيزه دوتنه",
"exif-datetimeoriginal": "د اومتوک د جوړېدنې وخت او نېټه",
"exif-colorspace": "Espaço de cor",
"exif-componentsconfiguration": "Significado de cada componente",
"exif-compressedbitsperpixel": "Modo de compressão de imagem",
- "exif-pixelydimension": "Largura da imagem",
- "exif-pixelxdimension": "Altura da imagem",
+ "exif-pixelxdimension": "Largura da imagem",
+ "exif-pixelydimension": "Altura da imagem",
"exif-usercomment": "Comentários de usuários",
"exif-relatedsoundfile": "arquivo áudio relacionado",
"exif-datetimeoriginal": "Data e hora de geração de dados",
"redirect-not-exists": "Valor não encontrado",
"fileduplicatesearch": "Procurar por arquivos duplicados",
"fileduplicatesearch-summary": "Procure por arquivos duplicados tendo por base seu valor \"hash\".",
- "fileduplicatesearch-legend": "Procurar por duplicatas",
"fileduplicatesearch-filename": "Nome do arquivo:",
"fileduplicatesearch-submit": "Pesquisa",
"fileduplicatesearch-info": "$1 × $2 pixels<br />Tamanho: $3<br />tipo MIME: $4",
"listgrants-summary": "Esta é uma lista de atribuições com os respetivos acessos às permissões de utilizador. Os utilizadores podem autorizar aplicações a utilizar suas contas, mas com permissões limitadas baseadas nas atribuições dadas pelos utilizadores a cada aplicação. No entanto, uma aplicação agindo em nome de um utilizador não pode utilizar permissões que o utilizador não possui.\nPode haver [[{{MediaWiki:Listgrouprights-helppage}}|informação adicional]] sobre permissões individuais.",
"listgrants-grant": "Atribuição",
"listgrants-rights": "Direitos",
- "trackingcategories": "Categorias de rastreamento",
+ "trackingcategories": "Categorias de monitorização",
"trackingcategories-summary": "Esta página lista as categorias monitoradas que foram geradas automaticamente pelo software MediaWiki. Os seus nomes podem ser alterados ao editar sua mensagem correspondente no domínio {{ns:8}}.",
"trackingcategories-msg": "Categoria monitorada",
"trackingcategories-name": "Nome da mensagem",
"exif-colorspace": "Espaço de cores",
"exif-componentsconfiguration": "Significado de cada componente",
"exif-compressedbitsperpixel": "Modo de compressão da imagem",
- "exif-pixelydimension": "Largura válida da imagem",
- "exif-pixelxdimension": "Altura válida da imagem",
+ "exif-pixelxdimension": "Largura válida da imagem",
+ "exif-pixelydimension": "Altura válida da imagem",
"exif-usercomment": "Comentários de utilizadores",
"exif-relatedsoundfile": "Ficheiro áudio relacionado",
"exif-datetimeoriginal": "Data e hora de geração de dados",
"redirect-not-exists": "Valor não encontrado",
"fileduplicatesearch": "Ficheiros duplicados",
"fileduplicatesearch-summary": "Procure ficheiros duplicados tendo por base o seu resumo criptográfico.",
- "fileduplicatesearch-legend": "Procurar duplicados",
"fileduplicatesearch-filename": "Ficheiro:",
"fileduplicatesearch-submit": "Pesquisar",
"fileduplicatesearch-info": "$1 × $2 pixels<br />Tamanho: $3<br />tipo MIME: $4",
"exif-colorspace": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThe colorspace of the photo. This tells the computer how to make the colours in the photo be more true to the original photo. Typical values for this are sRGB or uncalibrated. This only gives information on colour information given in the exif-colorspace property. However, colour information is often stored elsewhere in the photo.\n\nSee also:\n* {{msg-mw|Exif-colorspace}}\n* {{msg-mw|Exif-colorspace-1|optional}}\n* {{msg-mw|Exif-colorspace-65535}}",
"exif-componentsconfiguration": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThis contains how the information in the picture is stored. This is most commonly Y, Cr, Cb to specify luma, red, blue. RGB is also possible to specify Red, Green, Blue.\n{{Related|Exif-componentsconfiguration}}",
"exif-compressedbitsperpixel": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].",
- "exif-pixelydimension": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n{{Identical|Image width}}",
- "exif-pixelxdimension": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n{{Identical|Image height}}",
+ "exif-pixelxdimension": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n{{Identical|Image width}}",
+ "exif-pixelydimension": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n{{Identical|Image height}}",
"exif-usercomment": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nComments by user. Sometimes used like ImageDescription when the ImageDescription contained non-ascii characters. (Technically ImageDescription is supposed to contain ascii characters. In practice utf-8 is used in ImageDescription, so this field isn't used too much.)",
"exif-relatedsoundfile": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nSome cameras offer the option to record an audio \"memo\" for the photo they just took. If the user did that, the name of the file is labelled with this message.",
"exif-datetimeoriginal": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n\nThe date and time when the original image data was generated. For example if it was a painting from 1773, scanned in to a computer in 2007, the datetimeoriginal would be 1773 and {{msg-mw|exif-datetimedigitized}} would have the 2007 date.",
"confirmemail_body_set": "This is used in a confirmation email sent when a contact email address is set.\n\nSee also [[MediaWiki:Confirmemail body changed]].\n\nParameters:\n* $1 - the IP address of the user that set the email address\n* $2 - the name of the user\n* $3 - a URL to [[Special:ConfirmEmail]]\n* $4 - a time and date (duplicated by $6 and $7)\n* $5 - a URL to [[Special:InvalidateEmail]]\n* $6 - (Optional) a date\n* $7 - (Optional) a time\n{{Related|Confirmemail body}}",
"confirmemail_invalidated": "This is the text of the special page [[Special:InvalidateEmail|InvalidateEmail]] (with the title in {{msg-mw|Invalidateemail}}) where user goes if he chooses the cancel e-mail confirmation link from the confirmation e-mail.",
"invalidateemail": "This is the '''name of the special page''' where user goes if he chooses the cancel e-mail confirmation link from the confirmation e-mail.",
+ "notificationemail_subject_changed": "Subject of the email sent on the previously registered email address notifying them about the change in the registered email address.",
+ "notificationemail_subject_removed": "Subject of the email sent on the previously registered email address notifying them about the removal of the registered email address.",
+ "notificationemail_body_changed": "Body of the email sent on the previously registered email address notifying them about the change in the registered email address.",
+ "notificationemail_body_removed": "Body of the email sent on the previously registered email address notifying them about the removal of the registered email address.",
"scarytranscludedisabled": "Shown when scary transclusion is disabled.",
"scarytranscludefailed": "Shown when the HTTP request for the template failed. Identical to {{msg-mw|Scarytranscludefailed-httpstatus}}, but does not show the HTTP error which was received. This will not be parsed as wikitext and will appear as is. Parameters:\n* $1 - URL which points to interwiki template",
"scarytranscludefailed-httpstatus": "Identical to {{msg-mw|Scarytranscludefailed}}, but shows the HTTP error which was received. This will not be parsed as wikitext and will appear as is. Parameters:\n* $1 - URL which points to interwiki template\n* $2 - HTTP status, integer (other than 200)",
"exif-colorspace": "Llimphi suyu",
"exif-componentsconfiguration": "Sapa ñawpariqninpa sut'in",
"exif-compressedbitsperpixel": "Rikchap mat'isqa kaynin laya",
- "exif-pixelydimension": "Rikchap suni kaynin",
- "exif-pixelxdimension": "Rikchap hanaq kaynin",
+ "exif-pixelxdimension": "Rikchap suni kaynin",
+ "exif-pixelydimension": "Rikchap hanaq kaynin",
"exif-usercomment": "Llamk'achiqpa willayninkuna",
"exif-relatedsoundfile": "Ninachiq ruqyay willañiqi",
"exif-datetimeoriginal": "Willakunap kamaynin p'unchaw, pacha",
"exif-colorspace": "Spazi da colurs",
"exif-componentsconfiguration": "Significaziun da las singulas cumponentas",
"exif-compressedbitsperpixel": "Modus da cumprimer",
- "exif-pixelydimension": "Ladezza dal maletg",
- "exif-pixelxdimension": "Autezza dal maletg",
+ "exif-pixelxdimension": "Ladezza dal maletg",
+ "exif-pixelydimension": "Autezza dal maletg",
"exif-usercomment": "Commentari da l'utilisader",
"exif-relatedsoundfile": "Datoteca d'audio appartegnenta",
"exif-datetimeoriginal": "Data e temp da la generaziun",
"exif-colorspace": "Spațiu de culoare",
"exif-componentsconfiguration": "Semnificația fiecărei componente",
"exif-compressedbitsperpixel": "Mod de comprimare a imaginii",
- "exif-pixelydimension": "Lățimea imaginii",
- "exif-pixelxdimension": "Înălțimea imaginii",
+ "exif-pixelxdimension": "Lățimea imaginii",
+ "exif-pixelydimension": "Înălțimea imaginii",
"exif-usercomment": "Comentariile utilizatorilor",
"exif-relatedsoundfile": "Fișierul audio asemănător",
"exif-datetimeoriginal": "Data și ora producerii imaginii",
"exif-colorspace": "Spazie d'u culore",
"exif-componentsconfiguration": "Significate de ogne combonende",
"exif-compressedbitsperpixel": "Mode de combressione de l'immaggine",
- "exif-pixelydimension": "Larghezze de l'immaggine",
- "exif-pixelxdimension": "Altezze de l'immaggine",
+ "exif-pixelxdimension": "Larghezze de l'immaggine",
+ "exif-pixelydimension": "Altezze de l'immaggine",
"exif-usercomment": "Commende de l'utende",
"exif-relatedsoundfile": "File audio collegate",
"exif-datetimeoriginal": "Date e ore d'a generazione de le date",
"exif-colorspace": "Цветовое пространство",
"exif-componentsconfiguration": "Конфигурация цветовых компонентов",
"exif-compressedbitsperpixel": "Глубина цвета после сжатия",
- "exif-pixelydimension": "Ширина изображения",
- "exif-pixelxdimension": "Высота изображения",
+ "exif-pixelxdimension": "Ширина изображения",
+ "exif-pixelydimension": "Высота изображения",
"exif-usercomment": "Дополнительный комментарий",
"exif-relatedsoundfile": "Файл звукового комментария",
"exif-datetimeoriginal": "Оригинальные дата и время",
"redirect-not-exists": "Значение не найдено",
"fileduplicatesearch": "Поиск одинаковых файлов",
"fileduplicatesearch-summary": "Поиск одинаковых файлов по хэш-коду.",
- "fileduplicatesearch-legend": "Поиск дубликатов",
"fileduplicatesearch-filename": "Имя файла:",
"fileduplicatesearch-submit": "Найти",
"fileduplicatesearch-info": "$1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}<br />Размер файла: $3<br />MIME-тип: $4",
"exif-colorspace": "Фаребный простор",
"exif-componentsconfiguration": "Конфіґурація компонентів фарбы",
"exif-compressedbitsperpixel": "Компрімачный режім",
- "exif-pixelydimension": "Шырка образчіка",
- "exif-pixelxdimension": "Вышка образчіка",
+ "exif-pixelxdimension": "Шырка образчіка",
+ "exif-pixelydimension": "Вышка образчіка",
"exif-usercomment": "Додатковый коментарь",
"exif-relatedsoundfile": "Звязаный звуковый файл",
"exif-datetimeoriginal": "Оріґіналный датум і час",
"exif-colorspace": "वर्णावकाशः",
"exif-componentsconfiguration": "प्रत्येकं भागस्य अर्थः ।",
"exif-compressedbitsperpixel": "चित्रसङ्कोचविधानम् ।",
- "exif-pixelydimension": "चित्रपार्थवम् (width)",
- "exif-pixelxdimension": "चित्रैन्नत्यम् ।",
+ "exif-pixelxdimension": "चित्रपार्थवम् (width)",
+ "exif-pixelydimension": "चित्रैन्नत्यम् ।",
"exif-usercomment": "योजकाभिप्रायः ।",
"exif-relatedsoundfile": "सम्बद्धश्रवणसञ्चिका ।",
"exif-datetimeoriginal": "दत्तांशसर्जनस्य दिनाङ्कः समयः च ।",
"exif-colorspace": "Өҥ куйаара (пространство, space)",
"exif-componentsconfiguration": "Хас биирдии компонент суолтата",
"exif-compressedbitsperpixel": "Ойууну хам тутуу ньымата",
- "exif-pixelydimension": "Ойуу кэтитэ",
- "exif-pixelxdimension": "Ойуу үрдүгэ",
+ "exif-pixelxdimension": "Ойуу кэтитэ",
+ "exif-pixelydimension": "Ойуу үрдүгэ",
"exif-usercomment": "Кыттааччы хос быһаарыыта",
"exif-relatedsoundfile": "Аудио-билэҕэ сыһыаннаах",
"exif-datetimeoriginal": "Оҥоһуллубут кэмэ",
"exif-colorspace": "Spazziu dî culuri",
"exif-componentsconfiguration": "Significatu d'ognuna cumpunenti",
"exif-compressedbitsperpixel": "Mudalitati di cumprissioni dâ mmàggini",
- "exif-pixelydimension": "Larghizza dâ mmàggini",
- "exif-pixelxdimension": "Autizza dâ mmàggini",
+ "exif-pixelxdimension": "Larghizza dâ mmàggini",
+ "exif-pixelydimension": "Autizza dâ mmàggini",
"exif-usercomment": "Noti di l'utenti",
"exif-relatedsoundfile": "File audiu culligatu",
"exif-datetimeoriginal": "Data e ura di criazzioni dî dati",
"exif-colorspace": "Colour space",
"exif-componentsconfiguration": "Meanin o ilka component",
"exif-compressedbitsperpixel": "Eemage compression mode",
- "exif-pixelydimension": "Eemage width",
- "exif-pixelxdimension": "Eemage heicht",
+ "exif-pixelxdimension": "Eemage width",
+ "exif-pixelydimension": "Eemage heicht",
"exif-usercomment": "Uiser comments",
"exif-relatedsoundfile": "Relatit audío file",
"exif-datetimeoriginal": "Date n time o data generation",
"underline-always": "هميشہ",
"underline-never": "ڪڏهن بہ نہ",
"editfont-style": "ايراضي جو فونٽ اسٽائيل سنواريو:",
+ "editfont-serif": "سيرِف اِنڊو",
"sunday": "آچر",
"monday": "سومر",
"tuesday": "اڱارو",
"resetpass_submit": "ڳجھو لفظ طَي ڪريو ۽ لاگ اِن ٿيو",
"changepassword-success": "توهان جو ڳجھو لفظ ڪاميابيءَ سان بدلايو ويو!",
"changepassword-throttled": "توهان تازو ئي لاگ اِن ٿيڻ جون هيڪانديون گھڻيون ڪوششون ڪيون آهن. مهرباني ڪري $1 لاءِ ترسي پوءِ وري ڪوشش ڪريو.",
+ "botpasswords-label-create": "سرجيو",
+ "botpasswords-label-update": "تجديد",
+ "botpasswords-label-cancel": "رد",
+ "botpasswords-label-delete": "ڊاهيو",
+ "botpasswords-label-resetpassword": "ڳجھو لفظ نئين سِر مقرر ڪريو",
"resetpass_forbidden": "ڳجھو لفظ بدلائي نہ ٿو سگھجي.",
"resetpass-no-info": "هيءُ صفحو پڙهڻ لاءِ لاگ اِن ٿيڻ ضروري آهي.",
"resetpass-submit-loggedin": "ڳجھو لفظ بدلايو",
"passwordreset-emaildisabled": "هن وڪيءَ تي برقٽپال واريون خصوصيتون غير فعال بڻايون ويون آهن.",
"passwordreset-username": "يُوزرنانءُ:",
"passwordreset-domain": "ميدان:",
+ "passwordreset-capture": "برق ٽپال ڏسڻ چاهيندا؟",
"passwordreset-email": "برق ٽپال پتو:",
"passwordreset-emailtitle": "{{SITENAME}} واري کاتي جا تفصيل",
"passwordreset-emailelement": "يُوزر نانءُ: \n$1\n\nعارضي ڳجھو لفظ:\n$2",
"hiddencategories": "هيءُ صفحو {{PLURAL:$1|1 لڪل زمري|$1 لڪل زمرن}}: جو رڪن آهي:",
"nocreatetext": "{{SITENAME}} نوان صفحا سرجڻ جي روڪَ ڪئي آهي.\nتوهان اڳي ئي موجود صفحن کي سنواري سگھو ٿا، يا [[Special:UserLogin|لاگ اِن ٿي يا نئون کاتو کولي سگھو ٿا]].",
"nocreate-loggedin": "توهان کي نوان صفحا سرجڻ جي اجازت حاصل ڪانهي.",
+ "sectioneditnotsupported-title": "سيڪشن جي سنوار ممڪن نہ آهي",
+ "sectioneditnotsupported-text": "هن صفحي تي سيڪشن کي سنوارڻ ممڪن نہ آهي.",
"permissionserrors": "اجازتنامي جي چُڪَ",
"permissionserrorstext": "هيٺين {{PLURAL:$1|سبب|سببن}} ڪري، توهان کي اهو ڪرڻ جي اجازت حاصل ڪانهي.",
"permissionserrorstext-withaction": "هيٺين {{PLURAL:$1|سبب|سببن}} ڪري، توهان کي $2 جي اجازت ڪانهي.",
"timezonelegend": "اوقاتي زون:",
"localtime": "مقامي وقت:",
"timezoneuseserverdefault": "وڪي عدم پيروي استعمال ڪريو ($1)",
+ "timezoneuseoffset": "ٻيو (ڄاڻايو)",
"servertime": "سَروَر پٽاندر وقت:",
"guesstimezone": "جھانگُوءَ مان ڀريو",
"timezoneregion-africa": "آفريڪا",
"right-move-categorypages": "زمراتي صفحا چوريو",
"right-movefile": "فائيل چوريو",
"right-upload": "فائيل چاڙهيو",
+ "right-reupload": "موجوده فائيلن مٿان",
"right-upload_by_url": "ڪنهن يُوآرايل تان فائيل چاڙهيو",
"right-writeapi": "اي پر آءِ لکڻ جو استعمال",
"right-delete": "صفحا ڊاهيو",
"right-viewmywatchlist": "پنهنجي ٽيٽ لسٽ ڏسو",
"right-editmyoptions": "پنهنجون ترجيحات سنواريو",
"right-import": "ٻين وڪيز کان صفحا درآمديو",
+ "right-importupload": "ڪو فائيل چاڙهي صفحا درآمديو",
"right-mergehistory": "صفحن جي سوانح سنواريو",
"right-userrights": "سڀ يوزر حق ترميم ڪريو",
"right-userrights-interwiki": "هن وڪي جي يوزرس جا حق ترميم ڪريو",
"right-sendemail": "ٻين يوزرس ڏانهن ايميل موڪليو",
"right-passwordreset": "ڳجھو لفظ مقرري برق ٽپالون ڏسو",
"right-managechangetags": "اعدادخاني ۾ [[Special:Tags|ٽيگس]] سرجيو ۽ ڊاهيو.",
+ "grant-group-email": "برق ٽپال اماڻيو",
+ "grant-blockusers": "يُوزرس کي بندشيو ۽ اڻبندشيو",
+ "grant-createaccount": "نئون کاتو کوليو",
+ "grant-editmywatchlist": "پنهنجي ٽيٽ فهرست سنواريو",
+ "grant-editprotected": "تحفظيل صفحا سنواريو",
+ "grant-rollback": "صفحن ۾ ڪيل تبديليون واپس ورايو",
+ "grant-sendemail": "ٻين يوزرس ڏانهن ايميل موڪليو",
+ "grant-uploadeditmovefile": "فائيل چاڙهيو، مَٽايو، ۽ ڊاهيو",
+ "grant-uploadfile": "نئون فائيل چاڙهيو",
+ "grant-basic": "بنيادي حقَ",
+ "grant-viewdeleted": "ڊَٺَلَ فائيلَ ۽ صفحا ڏسو",
+ "grant-viewmywatchlist": "پنهنجي ٽيٽ فهرست ڏسو",
"newuserlogpage": "يوزر کاتن جو لاگ",
"rightslog": "يُوزر حق لاگ",
"action-read": "هي صفحو پڙهو",
"newpageletter": "ن",
"boteditletter": "گ",
"number_of_watching_users_pageview": "[$1، {{PLURAL:$1|يُوزر|يُوزرس}} کي ٽيٽيندي]",
+ "rc_categories_any": "چونڊيلن مان ڪو بہ",
"rc-change-size-new": "$1 {{PLURAL:$1|بائيٽ|بائيٽس}} تبديليءَ کان پوءِ",
+ "newsectionsummary": "/* $1 */ نئون سيڪشن",
"rc-enhanced-expand": "تفصيل ڏيکاريو",
"rc-enhanced-hide": "تفصيل لڪايو",
"recentchangeslinked": "لاڳاپيل تبديليون",
"fileuploadsummary": "خلاصو:",
"filereuploadsummary": "فائيل تبديليون:",
"filesource": "ذريعو:",
+ "ignorewarnings": "وارنڱس کي نظرانداز ڪريو",
+ "badfilename": "فائيلنانءُ بدلائي \"$1\" رکيو ويو آهي.",
+ "empty-file": "توهان جو جمع ڪرايل فائيل خالي آهي.",
"filename-tooshort": "فائيل نانءَُ هيڪاندو ننڍو آهي.",
"filetype-banned": "فائيل جو هيءُ قسم بندشيل آهي.",
"verification-error": "هن فائيل جي تصديق ٿي نہ سگھي.",
"upload-options": "چاڙھ جا چارا",
"watchthisupload": "هيءُ فائيل ٽيٽيو",
"upload-file-error": "اندروني چُڪَ",
+ "upload-http-error": "ايڇ ٽي ٽي پي جي چُڪَ ٿي آهي: $1",
"upload-dialog-title": "فائيل چاڙهيو",
"upload-dialog-button-cancel": "رد",
"upload-dialog-button-done": "ٿي ويو",
"backend-fail-move": "فائيل \"$1\" کي \"$2\" ڏانهن چوري نه سگھيو.",
"backend-fail-opentemp": "عارضي فائيئ کولي نه سگھيو.",
"backend-fail-read": "فائيل \"$1\" کي پڙهي نه سگھيو.",
+ "uploadstash-thumbnail": "ٽِڪِلي ڏسو",
+ "img-auth-accessdenied": "دسترس کان جواب",
"license-header": "لائيسنسڪاري",
+ "nolicense": "چونڊ اڻموجود",
"listfiles-delete": "ڊاهيو",
"imgfile": "فائيل",
"listfiles": "فائيل فهرست",
+ "listfiles_thumb": "ٽِڪِلِي",
"listfiles_date": "تاريخ",
"listfiles_name": "نالو",
"listfiles_user": "يُوزر",
"filehist-datetime": "تاريخ/وقت",
"filehist-thumb": "آڱوٺي ننهن",
"filehist-thumbtext": "$1 جي نظرثاني لاءِ تصويري نشان",
+ "filehist-nothumb": "ٽِڪِلِي اڻموجود",
"filehist-user": "يُوزر",
"filehist-dimensions": "ماپَ",
"filehist-filesize": "فائيل سائيز",
"unusedtemplates": "اڻ استعماليل سانچا",
"unusedtemplateswlh": "ٻيا ڳنڍڻا",
"randompage": "بلاترتيب صفحو",
+ "randomincategory": "زمري مان ڪو بلاترتيب صفحو",
"randomincategory-category": "زمرو:",
+ "randomincategory-legend": "زمري مان ڪو بلاترتيب صفحو",
"randomincategory-submit": "هلو",
"randomredirect": "بلا ترتيب چورڻو",
"statistics": "انگ اکر",
"statistics-users": "کاتيدار [[Special:ListUsers|يُوزرس]]",
"statistics-users-active": "سرگرم يُوزرس",
"statistics-users-active-desc": "اهي يُوزرس جن پوين {{PLURAL:$1|ڏينهن|$1 ڏينهن}} ۾ ڪا سرگرمي ڏيکاري آهي.",
+ "pageswithprop-prop": "خصوصيت نانءُ:",
"pageswithprop-submit": "ھلو",
"doubleredirects": "ٻٽا چورڻا",
"double-redirect-fixed-move": "[[$1]] چورجي چڪو آهي. ان کي خودڪاراً تجديديو ويو ۽ هاڻي اهو [[$2]] ڏانهن وٺي وڃي ٿو.",
"deadendpages": "اڻ ڳنڍيندڙ صفحا",
"protectedpages": "تحفظيل صفحا",
"protectedpages-noredirect": "چورڻا لڪايو",
+ "protectedpages-timestamp": "اوقاتي مُهُرَ",
"protectedpages-page": "صفحو",
+ "protectedpages-params": "تحفظ جا نميپيما",
"protectedpages-reason": "سبب",
"protectedpages-submit": "صفحا ڏيکاريو",
"protectedpages-unknown-timestamp": "اڻڄاتل",
"protectedtitles-submit": "عنوان ڏيکاريو",
"listusers": "يُوزر فهرست",
"newpages": "نوان صفحا",
+ "newpages-submit": "ڏيکاريو",
"newpages-username": "يُوزرنانءُ:",
"ancientpages": "قديم ترين صفحا",
"move": "چوريو",
"movethispage": "هيءُ صفحو چوريو",
"notargettitle": "بنان هدف",
+ "nopagetitle": "اهدافي صفحو اڻموجود",
"pager-older-n": "{{PLURAL:$1|پراڻو 1|پراڻا $1}}",
+ "apisandbox-retry": "ٻيهر ڪوشش ڪريو",
+ "apisandbox-helpurls": "امدادي ڳنڍڻا",
+ "apisandbox-examples": "مثال",
+ "apisandbox-dynamic-parameters-add-label": "نيمپيما شامل ڪريو",
+ "apisandbox-dynamic-parameters-add-placeholder": "نيمپيما نانءُ",
+ "apisandbox-results": "نتيجا",
"booksources": "ڪتابي وسيلا",
"booksources-search-legend": "ڪتابي ذريعن جي ڳولا ڪريو",
"booksources-search": "ڳوليو",
"specialloguserlabel": "پيش ڪندڙ:",
"speciallogtitlelabel": "نشانو (عنوان يا {{ns:user}}:يا يوزنانءُ يور جي لاءِ):",
"log": "لاگس",
+ "logeventslist-submit": "ڏيکاريو",
"all-logs-page": "سڀ عوامي لاگس",
+ "checkbox-none": "ڪو بہ نہ",
+ "checkbox-invert": "ابتيو",
"allpages": "سڀ صفحا",
"nextpage": "اڳيون صفحو ($1)",
"prevpage": "پويون صفحو ($1)",
"allpagesfrom": "ھتان شروع ٿيندڙ صفحا نمايو",
+ "allpagesto": "ان تي ختم ٿيندڙ صفحا نُمايو:",
"allarticles": "سمورا مضمون",
"allinnamespace": "سمورا صفحا ($1 نانءُپولار)",
"allpagessubmit": "ھلو",
"allpagesprefix": "صفحا نمايو بمع اڳياڙي:",
+ "allpagesbadtitle": "صفحي جو گھربل عنوان ڪار ڪونهي، يا خالي آهي، يا وري غيردرست طريقي سان ڳنڍيل بينالزباني يا بينالوڪي عنوان آهي. \nان ۾ هڪ يا هڪ کان وڌيڪ اهڙا اکر موجود ٿي سگھن ٿا، جيڪي عنوان ۾ استعمال ڪري نہ ٿا سگھجن.",
"categories": "زمرا",
+ "categories-submit": "ڏيکاريو",
"deletedcontributions": "يُوزر جون ڊاٺل ڀاڱيداريون",
"deletedcontributions-title": "يُوزر جون ڊاٺل ڀاڱيداريون",
"sp-deletedcontributions-contribs": "ڀاڱيداريون",
"listgrouprights-addgroup-all": "سڀ گروپَ شامل ڪريو",
"listgrouprights-removegroup-all": "سڀ گروپ هٽايو",
"listgrouprights-namespaceprotection-namespace": "نانءُ پولار:",
+ "listgrants-rights": "حق",
"trackingcategories-name": "پيغام جو نالو",
"trackingcategories-nodesc": "ڪا به تشريح موجود نه آهي.",
"trackingcategories-disabled": "زمرو ناقابلِ ڪار بڻايل آهي.",
"mywatchlist": "ٽيٽ فهرست",
"addwatch": "ٽيٽ فهرست ۾ شامل ڪريو",
"addedwatchtext": "صفحو\"[[:$1]]\" ان جي بحث وارو صفحو اوهان جي [[Special:Watchlist|ٽيٽ فهرست]] ۾ شامل ڪيو ويو آهي.",
+ "removewatch": "ٽيٽ فهرست مان خارج ڪريو",
"removedwatchtext": "صفحو بعنوان \"[[:$1]]\" توهان جي [[Special:Watchlist|ٽيٽ فهرست]] مان هٽي چڪو آهي.",
"removedwatchtext-short": "\"صفحو بعنوان \"$1\" توهان جي ٽيٽ فهرست مان هٽي چڪو آهي.\"",
"watch": "ٽيٽيو",
"exif-artist": "ليکڪ",
"exif-copyright": "حق ۽ واسطا رکندڙ",
"exif-colorspace": "رنگ پولار",
- "exif-pixelydimension": "عڪس جي ويڪر",
- "exif-pixelxdimension": "عڪس جي اوچائي",
+ "exif-pixelxdimension": "عڪس جي ويڪر",
+ "exif-pixelydimension": "عڪس جي اوچائي",
"exif-usercomment": "يُوزر جا تاثرات",
"exif-relatedsoundfile": "لاڳاپيل آوازي فائيل",
"exif-datetimeoriginal": "اعداد جي جڙڻ جي تاريخ ۽ وقت",
"metadata-help": "ئەی پەڕگە زانیاری فرەێگ لەتێیە، ک گەھا دۊردۊن (camera) یا ئسکەنێر (scanner) خستۊە سەری. ئەگەر پەڕگەگە لە حاڵەتە سەرەتاییەگەیەو دەسکاری کریاۊد، گاھەس بڕێگ لە وردەکاریەیل، زانیارەگان وێنە گووڕیاێەگە وە تەواوی نیشان نەدەن.",
"metadata-fields": "کاڵگەگان (fields) میتادەیتاێ وێنە ک لە ئەی پەیامە وەڕزارەو کریانە، کاتێگ جەدوەل میتادەیتا کووکریاێ بوود لە پەڕەی وێنە نیشان دەریەن.\nکاڵگەگان تر لە حاڵەتی بنەڕەتی شاریاێن.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
"exif-imagedescription": "ناونیشان وێنە",
- "exif-pixelxdimension": "بەرزی وێنە",
+ "exif-pixelydimension": "بەرزی وێنە",
"exif-flash": "فلەش",
"exif-keywords": "کلیلوشەیل",
"exif-writer": "نۊسەر",
"exif-colorspace": "Noone farru",
"exif-componentsconfiguration": "Jere-ize foo kul maana",
"exif-compressedbitsperpixel": "Bii kankamandiyan yaayi",
- "exif-pixelydimension": "Bii hayri",
- "exif-pixelxdimension": "Bii kayyan",
+ "exif-pixelxdimension": "Bii hayri",
+ "exif-pixelydimension": "Bii kayyan",
"exif-usercomment": "Goykaw daarawey",
"exif-relatedsoundfile": "Jinde tuku hangante",
"exif-datetimeoriginal": "Han nda waati bayhaya teeyan se",
"exif-exifversion": "Exif atmains",
"exif-colorspace": "Spalvū lauks",
"exif-compressedbitsperpixel": "Abruozdielė sospaudėma rėžėms",
- "exif-pixelydimension": "Abruozdielė platoms",
- "exif-pixelxdimension": "Abruozdielė augoms",
+ "exif-pixelxdimension": "Abruozdielė platoms",
+ "exif-pixelydimension": "Abruozdielė augoms",
"exif-usercomment": "Pāiškėnėmā",
"exif-relatedsoundfile": "Prėgolons garsos",
"exif-datetimeoriginal": "Žėnės paderbėma čiesos",
"exif-colorspace": "Prostor boje",
"exif-componentsconfiguration": "Značenje pojedine komponente",
"exif-compressedbitsperpixel": "Dubina boje poslije sažimanja",
- "exif-pixelydimension": "Širina slike",
- "exif-pixelxdimension": "Visina slike",
+ "exif-pixelxdimension": "Širina slike",
+ "exif-pixelydimension": "Visina slike",
"exif-usercomment": "Korisnički komentari",
"exif-relatedsoundfile": "Povezana zvučna datoteka",
"exif-datetimeoriginal": "Datum i vrijeme generisanja podataka",
"exif-colorspace": "වර්ණ අවකාශය",
"exif-componentsconfiguration": "එක් එක් සංරචකයේ අර්ථය",
"exif-compressedbitsperpixel": "රූප සම්පීඩන මාදිලිය",
- "exif-pixelydimension": "ප්රතිබිම්බයෙහි පළල",
- "exif-pixelxdimension": "ප්රතිබිම්බයෙහි උස",
+ "exif-pixelxdimension": "ප්රතිබිම්බයෙහි පළල",
+ "exif-pixelydimension": "ප්රතිබිම්බයෙහි උස",
"exif-usercomment": "පරිශීලක පරිකථනයන්",
"exif-relatedsoundfile": "සහසම්බන්ධිත ශ්රව්ය ගොනුව",
"exif-datetimeoriginal": "දත්ත ජනන දිනය හා වේලාව",
"exif-colorspace": "Farebný priestor",
"exif-componentsconfiguration": "Význam jednotlivých zložiek",
"exif-compressedbitsperpixel": "Komprimované bity na pixel",
- "exif-pixelydimension": "Šírka obrázka",
- "exif-pixelxdimension": "Výška obrázka",
+ "exif-pixelxdimension": "Šírka obrázka",
+ "exif-pixelydimension": "Výška obrázka",
"exif-usercomment": "Komentár používateľa",
"exif-relatedsoundfile": "Súvisiaci zvukový súbor",
"exif-datetimeoriginal": "Dátum a čas vytvorenia dát",
"exif-colorspace": "Barvni prostor",
"exif-componentsconfiguration": "Pomen posameznih gradnikov",
"exif-compressedbitsperpixel": "Velikost točke po stiskanju (v bitih)",
- "exif-pixelydimension": "Širina slike",
- "exif-pixelxdimension": "Višina slike",
+ "exif-pixelxdimension": "Širina slike",
+ "exif-pixelydimension": "Višina slike",
"exif-usercomment": "Uporabniške pripombe",
"exif-relatedsoundfile": "Pripadajoča zvočna datoteka",
"exif-datetimeoriginal": "Datum in čas ustvaritve podatkov",
"redirect-not-exists": "Vrednosti ni mogoče najti",
"fileduplicatesearch": "Iskanje podvojenih datotek",
"fileduplicatesearch-summary": "Iskanje podvojenih datotek, ki temelji na podlagi njenih hashvrednosti.",
- "fileduplicatesearch-legend": "Poišči dvojnik",
"fileduplicatesearch-filename": "Ime datoteke:",
"fileduplicatesearch-submit": "Iskanje",
"fileduplicatesearch-info": "$1 × $2 pik<br />Velikost datoteke: $3<br />Vrsta MIME: $4",
"exif-artist": "Fotogroaf",
"exif-flashpixversion": "understitzte Flashpix-Version",
"exif-colorspace": "Forbraum",
- "exif-pixelydimension": "Giltige Bildbreite",
- "exif-pixelxdimension": "Giltige Bildhiehe",
+ "exif-pixelxdimension": "Giltige Bildbreite",
+ "exif-pixelydimension": "Giltige Bildhiehe",
"exif-usercomment": "Nutzerkommentare",
"exif-relatedsoundfile": "Zugehierige Tondatei",
"exif-exposuretime-format": "$1 Sekunda ($2)",
"exif-colorspace": "Hapësira e ngjyrave",
"exif-componentsconfiguration": "Kuptimi i secilit komponent",
"exif-compressedbitsperpixel": "Lloji i ngjeshjes së figurës",
- "exif-pixelydimension": "Gjerësia Image",
- "exif-pixelxdimension": "lartësi Image",
+ "exif-pixelxdimension": "Gjerësia Image",
+ "exif-pixelydimension": "lartësi Image",
"exif-usercomment": "Komentet e përdoruesit",
"exif-relatedsoundfile": "Skeda audio shoqëruese",
"exif-datetimeoriginal": "Data dhe koha e prodhimit të të dhënave",
"exif-colorspace": "Простор боје",
"exif-componentsconfiguration": "Значење сваког дела",
"exif-compressedbitsperpixel": "Режим сажимања слике",
- "exif-pixelydimension": "Ширина слике",
- "exif-pixelxdimension": "Висина слике",
+ "exif-pixelxdimension": "Ширина слике",
+ "exif-pixelydimension": "Висина слике",
"exif-usercomment": "Кориснички коментари",
"exif-relatedsoundfile": "Повезани звучни запис",
"exif-datetimeoriginal": "Датум и време сликања",
"redirect-not-exists": "Вредност није пронађена",
"fileduplicatesearch": "Претрага дупликата",
"fileduplicatesearch-summary": "Претрага дуплираних датотека према хеш вредности.",
- "fileduplicatesearch-legend": "Претрага дупликата",
"fileduplicatesearch-filename": "Назив датотеке:",
"fileduplicatesearch-submit": "Претражи",
"fileduplicatesearch-info": "$1 × $2 пиксела<br />Величина датотеке: $3<br />MIME тип: $4",
"exif-colorspace": "Prostor boje",
"exif-componentsconfiguration": "Značenje svakog dela",
"exif-compressedbitsperpixel": "Režim sažimanja slike",
- "exif-pixelydimension": "Širina slike",
- "exif-pixelxdimension": "Visina slike",
+ "exif-pixelxdimension": "Širina slike",
+ "exif-pixelydimension": "Visina slike",
"exif-usercomment": "Korisnički komentari",
"exif-relatedsoundfile": "Povezani zvučni zapis",
"exif-datetimeoriginal": "Datum i vreme slikanja",
"redirect-not-exists": "Vrednost nije pronađen",
"fileduplicatesearch": "Pretraga duplikata",
"fileduplicatesearch-summary": "Pretraga dupliranih datoteka prema heš vrednosti.",
- "fileduplicatesearch-legend": "Pretraga duplikata",
"fileduplicatesearch-filename": "Naziv datoteke:",
"fileduplicatesearch-submit": "Pretraži",
"fileduplicatesearch-info": "$1 × $2 piksela<br />Veličina datoteke: $3<br />MIME tip: $4",
"exif-colorspace": "Faawenruum",
"exif-componentsconfiguration": "Betjuudenge fon älke Komponente",
"exif-compressedbitsperpixel": "Komprimierde Bits pro Pixel",
- "exif-pixelydimension": "Bieldebratte",
- "exif-pixelxdimension": "Bieldehöchte",
+ "exif-pixelxdimension": "Bieldebratte",
+ "exif-pixelydimension": "Bieldehöchte",
"exif-usercomment": "Benutserkommentoare",
"exif-relatedsoundfile": "Touheerige Toondoatäi",
"exif-datetimeoriginal": "Ärfoatengstiedpunkt",
"exif-colorspace": "Rohangan warna",
"exif-componentsconfiguration": "Harti unggak komponén",
"exif-compressedbitsperpixel": "Mode komprési gambar",
- "exif-pixelydimension": "Lébar gambar",
- "exif-pixelxdimension": "Jangkung gambar",
+ "exif-pixelxdimension": "Lébar gambar",
+ "exif-pixelydimension": "Jangkung gambar",
"exif-usercomment": "Koméntar pamaké",
"exif-datetimeoriginal": "Titimangsa jeung wanci dijieunna data",
"exif-datetimedigitized": "Titimangsa jeung wanci digitisasi",
"noemail": "Användaren \"$1\" har inte registrerat någon e-postadress.",
"noemailcreate": "Du måste ange en giltig e-postadress",
"passwordsent": "Ett nytt lösenord har skickats till den e-postadress som användaren \"$1\" har registrerat. När du får meddelandet, var god logga in igen.",
- "blocked-mailpassword": "Din IP-adress är blockerad, därför kan den inte användas för att få ett nytt lösenord.",
+ "blocked-mailpassword": "Din IP-adress har blockerats från att redigera. För att förhindra missbruk kan den inte användas för att få ett nytt lösenord.",
"eauthentsent": "Ett e-postmeddelande för bekräftelse har skickats till den angivna e-postadressen.\nInnan någon annan e-post kan skickas till kontot, måste du följa instruktionerna i e-postmeddelandet för att bekräfta att kontot verkligen är ditt.",
"throttled-mailpassword": "En lösenordsåterställning har redan skickats för mindre än {{PLURAL:$1|en timme|$1 timmar}} sedan.\nFör att förhindra missbruk skickas bara en lösenordsåterställning per {{PLURAL:$1|timme|$1-timmarsperiod}}.",
"mailerror": "Fel vid skickande av e-post: $1",
"ipb-unblock": "Ta bort blockering av en användare eller IP-adress",
"ipb-blocklist": "Visa gällande blockeringar",
"ipb-blocklist-contribs": "Bidrag från {{GENDER:$1|$1}}",
+ "ipb-blocklist-duration-left": "$1 kvar",
"unblockip": "Ta bort blockering av användare/IP-adress",
"unblockiptext": "Använd formuläret nedan för att ta bort blockeringen av en IP-adress.",
"ipusubmit": "Upphäv denna blockering",
"exif-colorspace": "Färgrymd",
"exif-componentsconfiguration": "Komponentanalys",
"exif-compressedbitsperpixel": "Bildkomprimeringsläge",
- "exif-pixelydimension": "Bildbredd",
- "exif-pixelxdimension": "Bildhöjd",
+ "exif-pixelxdimension": "Bildbredd",
+ "exif-pixelydimension": "Bildhöjd",
"exif-usercomment": "Kommentarer",
"exif-relatedsoundfile": "Relaterad ljudfil",
"exif-datetimeoriginal": "Exponeringstidpunkt",
"redirect-not-exists": "Värdet hittades inte",
"fileduplicatesearch": "Sök efter dubblettfiler",
"fileduplicatesearch-summary": "Sök efter dubblettfiler baserat på filernas hash-värden.",
- "fileduplicatesearch-legend": "Sök efter en dubblettfil",
"fileduplicatesearch-filename": "Filnamn:",
"fileduplicatesearch-submit": "Sök",
"fileduplicatesearch-info": "$1 × $2 pixlar<br />Filstorlek: $3<br />MIME-typ: $4",
"logentry-protect-protect-cascade": "$1 {{GENDER:$2|skyddade}} $3 $4 [kaskaderande]",
"logentry-protect-modify": "$1 {{GENDER:$2|ändrade}} skyddsnivån för $3 $4",
"logentry-protect-modify-cascade": "$1 {{GENDER:$2|ändrade}} skyddsnivån för $3 $4 [kaskaderande]",
- "logentry-rights-rights": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för $3 från $4 till $5",
+ "logentry-rights-rights": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för {{GENDER:$3|$3}} från $4 till $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|ändrade}} gruppmedlemskapet för $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|befordrades}} automatiskt från $4 till $5",
"logentry-upload-upload": "$1 {{GENDER:$2|laddade upp}} $3",
"api-error-unknownerror": "Okänt fel: \"$1\".",
"api-error-uploaddisabled": "Uppladdning är inaktiverad på denna wiki.",
"api-error-verification-error": "Denna fil kan vara skadad eller har fel filändelse.",
+ "api-error-was-deleted": "En fil med detta namn har tidigare laddats upp och sedan raderats.",
"duration-seconds": "$1 {{PLURAL:$1|sekund|sekunder}}",
"duration-minutes": "$1 {{PLURAL:$1|minut|minuter}}",
"duration-hours": "$1 {{PLURAL:$1|timme|timmar}}",
"special-characters-group-ipa": "IPA",
"special-characters-group-symbols": "Symboler",
"special-characters-group-greek": "Grekiska",
+ "special-characters-group-greekextended": "Grekiska utvidgad",
"special-characters-group-cyrillic": "Kyrilliskt",
"special-characters-group-arabic": "Arabiska",
"special-characters-group-arabicextended": "Arabiska utökade",
"exif-copyright": "Mwenye hatimiliki",
"exif-exifversion": "Mtindo wa Exif",
"exif-componentsconfiguration": "Maana ya kila kijenzi",
- "exif-pixelydimension": "Upana wa picha",
- "exif-pixelxdimension": "Urefu wa picha",
+ "exif-pixelxdimension": "Upana wa picha",
+ "exif-pixelydimension": "Urefu wa picha",
"exif-usercomment": "Maoni ya mtumiaji",
"exif-relatedsoundfile": "Faili la sauti linalohusika",
"exif-lightsource": "Mwanga",
"exif-colorspace": "Přestřyń kolorůw",
"exif-componentsconfiguration": "Značyńy skuadowych",
"exif-compressedbitsperpixel": "Skůmpresowanych bitůw na piksel",
- "exif-pixelydimension": "Prawidłowa szyrzka uobrozu",
- "exif-pixelxdimension": "Prawidłowo wyżka uobrozu",
+ "exif-pixelxdimension": "Prawidłowa szyrzka uobrozu",
+ "exif-pixelydimension": "Prawidłowo wyżka uobrozu",
"exif-usercomment": "Kůmyntoř užytkowńika",
"exif-relatedsoundfile": "Powjůnzany plik audjo",
"exif-datetimeoriginal": "Data i čas utwořyńo uoryginouu",
"exif-colorspace": "நிற வெளி",
"exif-componentsconfiguration": "ஒவ்வெரு அங்கத்தினதும் பொருள்",
"exif-compressedbitsperpixel": "படிம சுறுக்க முறை",
- "exif-pixelydimension": "பட அகலம்",
- "exif-pixelxdimension": "பட உயரம்",
+ "exif-pixelxdimension": "பட அகலம்",
+ "exif-pixelydimension": "பட உயரம்",
"exif-usercomment": "பயனர் கருத்துக்கள்",
"exif-relatedsoundfile": "தொடர்புள்ள ஒலிக்கோப்பு",
"exif-datetimeoriginal": "தரவு உருவாக்க நாள் நேரம்",
"redirect-not-exists": "மதிப்பு காணப்பெறவில்லை",
"fileduplicatesearch": "நகல் கோப்புகளைத் தேடுக",
"fileduplicatesearch-summary": "நகல் கோப்புகளை ஹாஷ் மதிப்புகள் அடிப்படையில் தேடு.",
- "fileduplicatesearch-legend": "நகல்களைத் தேடுக",
"fileduplicatesearch-filename": "கோப்பின் பெயர்:",
"fileduplicatesearch-submit": "தேடுக",
"fileduplicatesearch-info": "$1 × $2 பிக்சல்<br />கோப்பின் அளவு: $3<br />MIME வகை: $4",
"exif-colorspace": "వర్ణస్థలం",
"exif-componentsconfiguration": "ప్రతీ అంగం యొక్క అర్థం",
"exif-compressedbitsperpixel": "బొమ్మ కుదింపు పద్ధతి",
- "exif-pixelydimension": "బొమ్మ వెడల్పు",
- "exif-pixelxdimension": "బొమ్మ ఎత్తు",
+ "exif-pixelxdimension": "బొమ్మ వెడల్పు",
+ "exif-pixelydimension": "బొమ్మ ఎత్తు",
"exif-usercomment": "వాడుకరి వ్యాఖ్యలు",
"exif-relatedsoundfile": "సంబంధిత శబ్ద ఫైలు",
"exif-datetimeoriginal": "డేటా తయారైన తేదీ, సమయం",
"exif-colorspace": "Фазои ранг",
"exif-componentsconfiguration": "Маънии ҳар як аз қисмҳо",
"exif-compressedbitsperpixel": "Ҳолати фишурдасозии акс",
- "exif-pixelydimension": "Арзи акс",
- "exif-pixelxdimension": "Тӯли акс",
+ "exif-pixelxdimension": "Арзи акс",
+ "exif-pixelydimension": "Тӯли акс",
"exif-usercomment": "Тавзеҳоти корбар",
"exif-relatedsoundfile": "Парвандаи сабти алоқаманд",
"exif-datetimeoriginal": "Таърих ва вақти тавлиди додаҳо",
"exif-colorspace": "Fazoi rang",
"exif-componentsconfiguration": "Ma'niji har jak az qismho",
"exif-compressedbitsperpixel": "Holati fişurdasoziji aks",
- "exif-pixelydimension": "Arzi aksi mū'tabar",
- "exif-pixelxdimension": "Tūli aksi mū'tabar",
+ "exif-pixelxdimension": "Arzi aksi mū'tabar",
+ "exif-pixelydimension": "Tūli aksi mū'tabar",
"exif-usercomment": "Tavzehoti korbar",
"exif-relatedsoundfile": "Parvandai sabti aloqamand",
"exif-datetimeoriginal": "Ta'rix va vaqti tavlidi dodaho",
"exif-colorspace": "สเปซสี",
"exif-componentsconfiguration": "ความหมายของแต่ละคอมโพเนนต์",
"exif-compressedbitsperpixel": "โหมดการบีบอัดภาพ",
- "exif-pixelydimension": "ความกว้างของภาพ",
- "exif-pixelxdimension": "ความสูงของภาพ",
+ "exif-pixelxdimension": "ความกว้างของภาพ",
+ "exif-pixelydimension": "ความสูงของภาพ",
"exif-usercomment": "ความเห็นผู้ใช้",
"exif-relatedsoundfile": "ไฟล์เสียงที่เกี่ยวข้อง",
"exif-datetimeoriginal": "วันที่และเวลาการก่อกำเนิดข้อมูล",
"exif-colorspace": "Reňk giňişligi",
"exif-componentsconfiguration": "Her komponentiň manysy",
"exif-compressedbitsperpixel": "Surat gysyş režimi",
- "exif-pixelydimension": "Dogry surat ini",
- "exif-pixelxdimension": "Dogry surat beýikligi",
+ "exif-pixelxdimension": "Dogry surat ini",
+ "exif-pixelydimension": "Dogry surat beýikligi",
"exif-usercomment": "Ulanyjy teswirleri",
"exif-relatedsoundfile": "Degişli audio faýl",
"exif-datetimeoriginal": "Asyl sene we wagt",
"exif-colorspace": "Espasyo ng kulay",
"exif-componentsconfiguration": "Kahulugan ng bawat komponente",
"exif-compressedbitsperpixel": "Modalidad (paraan) ng pagsisiksik ng larawan",
- "exif-pixelydimension": "Lapad ng larawan",
- "exif-pixelxdimension": "Taas ng larawan",
+ "exif-pixelxdimension": "Lapad ng larawan",
+ "exif-pixelydimension": "Taas ng larawan",
"exif-usercomment": "Mga kumento ng tagagamit",
"exif-relatedsoundfile": "Kaugnay na talaksang nadidinig (audio)",
"exif-datetimeoriginal": "Petsa at oras ng paglikha ng mga dato",
"version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Landas ng panitik]",
"fileduplicatesearch": "Maghanap ng kaparehong mga talaksan",
"fileduplicatesearch-summary": "Maghanap ng mga kaparehong mga talaksan sa baba ng kanyang halaga ng ''hash''.",
- "fileduplicatesearch-legend": "Maghanap ng mga kapareho",
"fileduplicatesearch-filename": "Pangalan ng file:",
"fileduplicatesearch-submit": "Hanapin",
"fileduplicatesearch-info": "$1 × $2 pixel<br />Laki ng talaksan: $3<br />Uri ng MIME: $4",
"exif-colorspace": "Renk aralığı",
"exif-componentsconfiguration": "Her bileşenin anlamı",
"exif-compressedbitsperpixel": "Resim sıkıştırma biçimi",
- "exif-pixelydimension": "Resim genişliği",
- "exif-pixelxdimension": "Resim yüksekliği",
+ "exif-pixelxdimension": "Resim genişliği",
+ "exif-pixelydimension": "Resim yüksekliği",
"exif-usercomment": "Kullanıcı yorumu",
"exif-relatedsoundfile": "İlişkin ses dosyası",
"exif-datetimeoriginal": "Verinin ilk yaratılma zamanı",
"exif-colorspace": "Төсләр тирәлеге",
"exif-componentsconfiguration": "Төсләр төзелешенең конфигурациясе",
"exif-compressedbitsperpixel": "Кысылудан соң төснең тирәнлеге",
- "exif-pixelydimension": "Рәсемнең киңлеге",
- "exif-pixelxdimension": "Рәсемнең биеклеге",
+ "exif-pixelxdimension": "Рәсемнең киңлеге",
+ "exif-pixelydimension": "Рәсемнең биеклеге",
"exif-usercomment": "Өстәмә җавап",
"exif-relatedsoundfile": "Тавыш файлы җавабы",
"exif-datetimeoriginal": "Чын вакыты",
"exif-colorspace": "Töslär tirälege",
"exif-componentsconfiguration": "Töslär tözeleşeneñ konfiguratsiäse",
"exif-compressedbitsperpixel": "Qısıludan soñ tösneñ tiränlege",
- "exif-pixelydimension": "Räsemneñ tulı bieklege",
- "exif-pixelxdimension": "Räsemneñ tulı kiñlege",
+ "exif-pixelxdimension": "Räsemneñ tulı bieklege",
+ "exif-pixelydimension": "Räsemneñ tulı kiñlege",
"exif-usercomment": "Östämä cawap",
"exif-relatedsoundfile": "Tawış faylı cawabı",
"exif-datetimeoriginal": "Çın waqıtı",
"exif-colorspace": "رەڭ بوشلۇقى",
"exif-componentsconfiguration": "ھەر بىر تەركىپنىڭ سالمىقى",
"exif-compressedbitsperpixel": "سۈرەت پرىسلاش شەكلى",
- "exif-pixelydimension": "سۈرەت كەڭلىكى",
- "exif-pixelxdimension": "سۈرەت ئېگىزلىكى",
+ "exif-pixelxdimension": "سۈرەت كەڭلىكى",
+ "exif-pixelydimension": "سۈرەت ئېگىزلىكى",
"exif-usercomment": "ئىشلەتكۈچى ئىزاھاتى",
"exif-relatedsoundfile": "مۇناسىۋەتلىك ئۈن ھۆججىتى",
"exif-datetimeoriginal": "سانلىق مەلۇمات قۇرۇلغان چېسلا ۋە ۋاقىت",
"exif-colorspace": "Колірний простір",
"exif-componentsconfiguration": "Конфігурація кольорових компонентів",
"exif-compressedbitsperpixel": "Глибина кольору після стиснення",
- "exif-pixelydimension": "Ширина зображення",
- "exif-pixelxdimension": "Висота зображення",
+ "exif-pixelxdimension": "Ширина зображення",
+ "exif-pixelydimension": "Висота зображення",
"exif-usercomment": "Додатковий коментар",
"exif-relatedsoundfile": "Файл звукового коментаря",
"exif-datetimeoriginal": "Оригинальні дата й час",
"redirect-not-exists": "Значення не знайдено",
"fileduplicatesearch": "Пошук файлів-дублікатів",
"fileduplicatesearch-summary": "Пошук дублікатів файлів на основі хеш-значень.",
- "fileduplicatesearch-legend": "Пошук дублікатів",
"fileduplicatesearch-filename": "Назва файлу:",
"fileduplicatesearch-submit": "Знайти",
"fileduplicatesearch-info": "$1 × $2 пікселів<br />Розмір файлу: $3<br />MIME-тип: $4",
"pagemovedsub": "Sahifa qayta nomlandi",
"movepage-moved": "'''Sahifa nomi «$1»dan «$2»ga koʻchirildi'''",
"movepage-moved-redirect": "Qayta yo‘naltirish yaratildi.",
+ "articleexists": "Shunday nomli sahifa mavjud, yoki siz tanlagan nom mumkin emas. \nIltimos, boshqa nom tanlang.",
"movetalk": "Mos munozara sahifasini qayta nomlash",
"move-subpages": "Ostsahifalarni ham qayta nomlash ($1 tadan kam)",
"move-talk-subpages": "Munozara sahifasining ostsahifalarini ham qayta nomlash ($1 tadan kam)",
"exif-colorspace": "Spazio de i cołori",
"exif-componentsconfiguration": "Significato de ciascuna componente",
"exif-compressedbitsperpixel": "Modalità de compression imagine",
- "exif-pixelydimension": "Larghesa imajine",
- "exif-pixelxdimension": "Altesa imajine",
+ "exif-pixelxdimension": "Larghesa imajine",
+ "exif-pixelydimension": "Altesa imajine",
"exif-usercomment": "Note de l'utente",
"exif-relatedsoundfile": "File audio cołegà",
"exif-datetimeoriginal": "Data e ora de creassion de i dati",
"exif-colorspace": "Mujuavaruz",
"exif-componentsconfiguration": "Mujukomponentoiden konfiguracii",
"exif-compressedbitsperpixel": "Mujun süvuz ahtištusen jäl'ghe",
- "exif-pixelydimension": "Kuvan leveduz",
- "exif-pixelxdimension": "Kuvan korktuz",
+ "exif-pixelxdimension": "Kuvan leveduz",
+ "exif-pixelydimension": "Kuvan korktuz",
"exif-usercomment": "Kävutajan homaičendad",
"exif-relatedsoundfile": "Kulundkommentarijan fail",
"exif-datetimeoriginal": "Todesine dat da aig",
"version-entrypoints-header-url": "URL",
"fileduplicatesearch": "Ectä kaksitadud failad",
"fileduplicatesearch-summary": "Ühtejiččiden failoiden ecmine niiden heš-kodan mödhe.",
- "fileduplicatesearch-legend": "Ectä dublikatoid",
"fileduplicatesearch-filename": "Failannimi:",
"fileduplicatesearch-submit": "Ectä",
"fileduplicatesearch-info": "$1 × $2 pikselad<br />Failan suruz: $3<br />MIME-tip: $4",
"exif-colorspace": "Không gian màu",
"exif-componentsconfiguration": "Ý nghĩa thành phần",
"exif-compressedbitsperpixel": "Độ nén (bit/điểm)",
- "exif-pixelydimension": "Chiều ngang hình",
- "exif-pixelxdimension": "Chiều cao hình",
+ "exif-pixelxdimension": "Chiều ngang hình",
+ "exif-pixelydimension": "Chiều cao hình",
"exif-usercomment": "Lời bình của tác giả",
"exif-relatedsoundfile": "Tập tin âm thanh liên quan",
"exif-datetimeoriginal": "Ngày giờ sinh dữ liệu",
"exif-colorspace": "Kölaspad",
"exif-componentsconfiguration": "Sinif komponena alik",
"exif-compressedbitsperpixel": "Mod kobopedama magoda",
- "exif-pixelydimension": "Magodavidot",
- "exif-pixelxdimension": "Magodageilot",
+ "exif-pixelxdimension": "Magodavidot",
+ "exif-pixelydimension": "Magodageilot",
"exif-usercomment": "Küpets gebana",
"exif-relatedsoundfile": "Tonaragiv tefik",
"exif-datetimeoriginal": "Dät e tim jafama nünodas",
"exif-colorspace": "Värmiruum",
"exif-componentsconfiguration": "Egä osa tähendüs",
"exif-compressedbitsperpixel": "Pildi kokkopakmismuud",
- "exif-pixelydimension": "Kõlbolinõ pildi lakjus",
- "exif-pixelxdimension": "Kõlbolinõ pildi korgus",
+ "exif-pixelxdimension": "Kõlbolinõ pildi lakjus",
+ "exif-pixelydimension": "Kõlbolinõ pildi korgus",
"exif-usercomment": "Pruukja kommõntaariq",
"exif-relatedsoundfile": "Manopant helüteedüstü",
"exif-datetimeoriginal": "Luumisaig",
"exif-artist": "Зокъялч",
"exif-copyright": "Зокъялчин зөвәнә эзн",
"exif-exifversion": "Exif'ин һарц",
- "exif-pixelydimension": "Күцц зургин өндр",
- "exif-pixelxdimension": "Күцц зургин өргн",
+ "exif-pixelxdimension": "Күцц зургин өндр",
+ "exif-pixelydimension": "Күцц зургин өргн",
"exif-exposuretime": "Дәврдгсн цаг",
"exif-exposuretime-format": "$1 с ($2)",
"exif-contrast": "Зөрү",
"exif-colorspace": "קאליר רוים",
"exif-componentsconfiguration": "מיינונג פון יעדן באשטאנדטייל",
"exif-compressedbitsperpixel": "בילד צוזאמקוועטשן מאוד",
- "exif-pixelydimension": "בילד ברייט",
- "exif-pixelxdimension": "בילד הייך",
+ "exif-pixelxdimension": "בילד ברייט",
+ "exif-pixelydimension": "בילד הייך",
"exif-usercomment": "באניצער קאמענטורן",
"exif-relatedsoundfile": "פֿאַרבונדענע אוידיאָ טעקע",
"exif-datetimeoriginal": "דאטום און צייט פון דאַטן באשאפונג",
"exif-colorspace": "Àyè àwọ̀",
"exif-componentsconfiguration": "Ìtumọ̀ àkóónú kọ̀ọ̀kan",
"exif-compressedbitsperpixel": "Àyè ìtẹ̀pọ̀ àwòrán",
- "exif-pixelydimension": "Ìfẹ̀ àwòrán",
- "exif-pixelxdimension": "Ìga àwòrán",
+ "exif-pixelxdimension": "Ìfẹ̀ àwòrán",
+ "exif-pixelydimension": "Ìga àwòrán",
"exif-usercomment": "Àwọn àwìsọ oníṣe",
"exif-relatedsoundfile": "Fáìlì ìfohùn tó jọra",
"exif-datetimeoriginal": "Ọjọ́ àti àsìkò tí dátà jade",
"exif-colorspace": "色彩空間",
"exif-componentsconfiguration": "每個部份嘅意思",
"exif-compressedbitsperpixel": "影像壓縮模式",
- "exif-pixelydimension": "影像闊度",
- "exif-pixelxdimension": "影像高度",
+ "exif-pixelxdimension": "影像闊度",
+ "exif-pixelydimension": "影像高度",
"exif-usercomment": "用家註腳",
"exif-relatedsoundfile": "相關聲音檔",
"exif-datetimeoriginal": "原創日期時間",
"exif-colorspace": "色彩空间",
"exif-componentsconfiguration": "各部分含义",
"exif-compressedbitsperpixel": "图像压缩模式",
- "exif-pixelydimension": "图像宽度",
- "exif-pixelxdimension": "图像高度",
+ "exif-pixelxdimension": "图像宽度",
+ "exif-pixelydimension": "图像高度",
"exif-usercomment": "用户评论",
"exif-relatedsoundfile": "相关声音文件",
"exif-datetimeoriginal": "数据生成日期时间",
"redirect-not-exists": "没找到相应值",
"fileduplicatesearch": "搜索重复文件",
"fileduplicatesearch-summary": "根据哈希(hash)值搜索重复文件。",
- "fileduplicatesearch-legend": "搜索重复文件",
"fileduplicatesearch-filename": "文件名:",
"fileduplicatesearch-submit": "搜索",
"fileduplicatesearch-info": "$1×$2像素<br />文件大小:$3<br />MIME类型:$4",
"nocookieslogin": "要登入 {{SITENAME}} 使用者需使用 Cookies,\n您的 Cookies 未尚開啟。\n請在開啟後重試。",
"nocookiesfornew": "這個使用者的帳號未建立,我們不能確認它的來源。\n請確認您已開啟 Cookie,重新載入後再試。",
"noname": "您輸入的使用者名稱無效。",
- "loginsuccesstitle": "登入成功",
+ "loginsuccesstitle": "已登入",
"loginsuccess": "<strong>{{GENDER:|您|妳|你}}現在已經以 \"$1\" 的身分登入了 {{SITENAME}}。</strong>",
"nosuchuser": "查無使用者 \"$1\"。\n使用者名稱有大小寫區分,\n請檢查您拼寫是否正確,或者 [[Special:UserLogin/signup|建立新帳號]]。",
"nosuchusershort": "查無使用者 \"$1\",\n請檢查您拼寫是否正確。",
"exif-colorspace": "色彩空間",
"exif-componentsconfiguration": "每像素內含",
"exif-compressedbitsperpixel": "影像壓縮模式",
- "exif-pixelydimension": "圖片寬度",
- "exif-pixelxdimension": "圖片高度",
+ "exif-pixelxdimension": "圖片寬度",
+ "exif-pixelydimension": "圖片高度",
"exif-usercomment": "使用者評論",
"exif-relatedsoundfile": "相關的音效檔案",
"exif-datetimeoriginal": "資料產生的日期時間",
"redirect-not-exists": "查無值",
"fileduplicatesearch": "搜尋重複檔案",
"fileduplicatesearch-summary": "依據雜湊值 (Hash) 來搜尋重複的檔案。",
- "fileduplicatesearch-legend": "搜尋重複",
"fileduplicatesearch-filename": "檔案名稱:",
"fileduplicatesearch-submit": "搜尋",
"fileduplicatesearch-info": "$1 × $2 像素<br />檔案大小:$3<br />MIME 類型:$4",
* @ingroup Maintenance
*/
+use MediaWiki\MediaWikiServices;
+
require_once __DIR__ . '/Maintenance.php';
/**
$pid = ( $threads > 1 ) ? pcntl_fork() : -1;
if ( $pid === 0 ) {
- // Child, reseed because there is no bug in PHP:
- // http://bugs.php.net/bug.php?id=42465
- mt_srand( getmypid() );
+ // Reset services, so we don't re-use connections.
+ MediaWikiServices::resetChildProcessServices();
+
$this->doRebuild( $codes, $lc, $force );
exit( 0 );
} elseif ( $pid === -1 ) {
'mediawiki.user',
'mediawiki.Upload',
'mediawiki.jqueryMsg',
+ 'mediawiki.widgets.StashedFileWidget'
],
'messages' => [
'upload-form-label-infoform-title',
'position' => 'top',
'targets' => [ 'desktop', 'mobile' ],
],
-
+ 'mediawiki.widgets.StashedFileWidget' => [
+ 'scripts' => [
+ 'resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.js',
+ ],
+ 'skinStyles' => [
+ 'default' => [
+ 'resources/src/mediawiki.widgets/mw.widgets.StashedFileWidget.less',
+ ],
+ ],
+ 'dependencies' => [
+ 'oojs-ui-core',
+ ],
+ ],
/* es5-shim */
'es5-shim' => [
'scripts' => [
--- /dev/null
+/*!
+ * MediaWiki Widgets - StashedFileWidget class.
+ *
+ * @copyright 2011-2016 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+( function ( $, mw, OO ) {
+
+ /**
+ * Accepts a stashed file and displays the information for purposes of
+ * publishing the file at the behest of the user.
+ *
+ * Example use:
+ * var widget = new mw.widgets.StashedFileWidget( {
+ * filekey: '12r9e4rugeec.ddtmmp.1.jpg',
+ * } );
+ *
+ * widget.getValue(); // '12r9e4rugeec.ddtmmp.1.jpg'
+ * widget.setValue( '12r9epfbnskk.knfiy7.1.jpg' );
+ * widget.getValue(); // '12r9epfbnskk.knfiy7.1.jpg'
+ *
+ * Note that this widget will not finish an upload for you. Use mw.Upload
+ * and mw.Upload#setFilekey, then mw.Upload#finishStashUpload to accomplish
+ * that.
+ *
+ * @class mw.widgets.StashedFileWidget
+ * @extends OO.ui.Widget
+ */
+
+ /**
+ * @constructor
+ * @param {Object} config Configuration options
+ * @cfg {string} filekey The filekey of the stashed file.
+ * @cfg {Object} [api] API to use for thumbnails.
+ */
+ mw.widgets.StashedFileWidget = function MWWStashedFileWidget( config ) {
+ if ( !config.api ) {
+ config.api = new mw.Api();
+ }
+
+ // Parent constructor
+ mw.widgets.StashedFileWidget.parent.call( this, config );
+
+ // Mixin constructors
+ OO.ui.mixin.IconElement.call( this, config );
+ OO.ui.mixin.LabelElement.call( this, config );
+ OO.ui.mixin.PendingElement.call( this, config );
+
+ // Properties
+ this.api = config.api;
+ this.$info = $( '<span>' );
+ this.setValue( config.filekey );
+ this.$label.addClass( 'mw-widgets-stashedFileWidget-label' );
+ this.$info
+ .addClass( 'mw-widgets-stashedFileWidget-info' )
+ .append( this.$icon, this.$label );
+
+ this.$thumbnail = $( '<div>' ).addClass( 'mw-widgets-stashedFileWidget-thumbnail' );
+ this.setPendingElement( this.$thumbnail );
+
+ this.$thumbContain = $( '<div>' )
+ .addClass( 'mw-widgets-stashedFileWidget-thumbnail-container' )
+ .append( this.$thumbnail, this.$info );
+
+ this.$element
+ .addClass( 'mw-widgets-stashedFileWidget' )
+ .append( this.$thumbContain );
+
+ this.updateUI();
+ };
+
+ OO.inheritClass( mw.widgets.StashedFileWidget, OO.ui.Widget );
+ OO.mixinClass( mw.widgets.StashedFileWidget, OO.ui.mixin.IconElement );
+ OO.mixinClass( mw.widgets.StashedFileWidget, OO.ui.mixin.LabelElement );
+ OO.mixinClass( mw.widgets.StashedFileWidget, OO.ui.mixin.PendingElement );
+
+ /**
+ * Get the current filekey.
+ *
+ * @return {string|null}
+ */
+ mw.widgets.StashedFileWidget.prototype.getValue = function () {
+ return this.filekey;
+ };
+
+ /**
+ * Set the filekey.
+ *
+ * @param {string|null} filekey
+ */
+ mw.widgets.StashedFileWidget.prototype.setValue = function ( filekey ) {
+ if ( filekey !== this.filekey ) {
+ this.filekey = filekey;
+ this.updateUI();
+ this.emit( 'change', this.filekey );
+ }
+ };
+
+ mw.widgets.StashedFileWidget.prototype.updateUI = function () {
+ var $label, $filetype;
+
+ if ( this.filekey ) {
+ this.$element.removeClass( 'mw-widgets-stashedFileWidget-empty' );
+ $label = $( [] );
+ $filetype = $( '<span>' )
+ .addClass( 'mw-widgets-stashedFileWidget-fileType' );
+
+ $label = $label.add(
+ $( '<span>' )
+ .addClass( 'mw-widgets-stashedFileWidget-filekey' )
+ .text( this.filekey )
+ ).add( $filetype );
+
+ this.setLabel( $label );
+
+ this.pushPending();
+ this.loadAndGetImageUrl().done( function ( url, mime ) {
+ this.$thumbnail.css( 'background-image', 'url( ' + url + ' )' );
+ if ( mime ) {
+ $filetype.text( mime );
+ this.setLabel( $label );
+ }
+ }.bind( this ) ).fail( function () {
+ this.$thumbnail.append(
+ new OO.ui.IconWidget( {
+ icon: 'attachment',
+ classes: [ 'mw-widgets-stashedFileWidget-noThumbnail-icon' ]
+ } ).$element
+ );
+ }.bind( this ) ).always( function () {
+ this.popPending();
+ }.bind( this ) );
+ } else {
+ this.$element.addClass( 'mw-widgets-stashedFileWidget-empty' );
+ this.setLabel( '' );
+ }
+ };
+
+ mw.widgets.StashedFileWidget.prototype.loadAndGetImageUrl = function () {
+ var filekey = this.filekey;
+
+ if ( filekey ) {
+ return this.api.get( {
+ action: 'query',
+ prop: 'stashimageinfo',
+ siifilekey: filekey,
+ siiprop: [ 'size', 'url', 'mime' ],
+ siiurlwidth: 220
+ } ).then( function ( data ) {
+ var sii = data.query.stashimageinfo[ 0 ];
+
+ return $.Deferred().resolve( sii.thumburl, sii.mime );
+ } );
+ }
+
+ return $.Deferred().reject( 'No filekey' );
+ };
+}( jQuery, mediaWiki, OO ) );
--- /dev/null
+.mw-widgets-stashedFileWidget {
+ display: inline-block;
+ vertical-align: middle;
+ width: 100%;
+ max-width: 50em;
+ margin-right: 0.5em;
+
+ &:last-child {
+ margin-right: 0;
+ }
+
+ &.oo-ui-iconElement .mw-widgets-stashedFileWidget-info .mw-widgets-stashedFileWidget-label {
+ left: 2.875em;
+ }
+
+ &.oo-ui-indicatorElement .mw-widgets-stashedFileWidget-info .mw-widgets-stashedFileWidget-label {
+ right: 4.4625em;
+ }
+}
+
+.mw-widgets-stashedFileWidget-info {
+ height: 2.4em;
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ border-radius: 2px;
+ width: 100%;
+ display: table-cell;
+ vertical-align: middle;
+ position: relative;
+ overflow: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ > .mw-widgets-stashedFileWidget-label {
+ line-height: 2.3em;
+ margin: 0;
+ overflow: hidden;
+ white-space: nowrap;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ text-overflow: ellipsis;
+ left: 0.5em;
+ right: 2.375em;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+
+ > .mw-widgets-stashedFileWidget-fileName {
+ float: left;
+ }
+ > .mw-widgets-stashedFileWidget-fileType {
+ color: #888888;
+ float: right;
+ }
+ }
+
+ > .oo-ui-indicatorElement-indicator,
+ > .oo-ui-iconElement-icon {
+ position: absolute;
+ }
+
+ > .oo-ui-indicatorElement-indicator {
+ right: 0;
+ top: 0;
+ width: 0.9375em;
+ height: 2.3em;
+ margin-right: 0.775em;
+ }
+
+ > .oo-ui-iconElement-icon {
+ top: 0;
+ width: 1.875em;
+ height: 2.3em;
+ margin-left: 0.5em;
+ left: 0;
+ }
+
+ &.oo-ui-widget-disabled {
+ .mw-widgets-stashedFileWidget-info {
+ color: #cccccc;
+ text-shadow: 0 1px 1px #ffffff;
+ border-color: #dddddd;
+ background-color: #f3f3f3;
+
+ > .oo-ui-iconElement-icon,
+ > .oo-ui-indicatorElement-indicator {
+ opacity: 0.2;
+ }
+ }
+ }
+}
+
+.mw-widgets-stashedFileWidget-thumbnail-container {
+ cursor: default;
+ height: 5.5em;
+ text-align: left;
+ padding: 0;
+ background-color: #ffffff;
+ border: 1px solid #cccccc;
+ margin-bottom: 0.5em;
+ vertical-align: middle;
+ overflow: hidden;
+ border-radius: 2px;
+
+ .mw-widgets-stashedFileWidget-thumbnail {
+ height: 5.5em;
+ width: 5.5em;
+ position: absolute;
+ background-size: cover;
+ background-position: center center;
+
+ &.oo-ui-pendingElement-pending {
+ background-size: auto;
+ }
+
+ > .mw-widgets-stashedFileWidget-noThumbnail-icon {
+ opacity: 0.4;
+ background-color: #cccccc;
+ height: 5.5em;
+ width: 5.5em;
+ }
+ }
+
+ .mw-widgets-stashedFileWidget-info {
+ border: none;
+ background: none;
+ display: block;
+ height: 100%;
+ width: auto;
+ margin-left: 5.5em;
+
+ > .mw-widgets-stashedFileWidget-label {
+ position: relative;
+
+ > .mw-widgets-stashedFileWidget-fileName {
+ display: block;
+ float: none;
+ }
+
+ > .mw-widgets-stashedFileWidget-fileType {
+ display: block;
+ float: none;
+ }
+ }
+ }
+}
+
+
+.mw-widgets-stashedFileWidget-empty {
+ .mw-widgets-stashedFileWidget-thumbnail-container {
+ text-align: center;
+
+ .mw-widgets-stashedFileWidget-thumbnail,
+ .mw-widgets-stashedFileWidget-info {
+ margin: 0;
+ display: none;
+ }
+ }
+
+ .mw-widgets-stashedFileWidget-label {
+ color: #cccccc;
+ right: 0.5em;
+ }
+
+ &.oo-ui-indicatorElement {
+ .mw-widgets-stashedFileWidget-label {
+ right: 2em;
+ }
+ }
+}
}
function finishUpload( moreData ) {
- data = $.extend( data, moreData );
- data.filekey = filekey;
- data.action = 'upload';
- data.format = 'json';
-
- if ( !data.filename ) {
- throw new Error( 'Filename not included in file data.' );
- }
-
- return api.postWithEditToken( data ).then( function ( result ) {
- if ( result.upload && result.upload.warnings ) {
- return $.Deferred().reject( getFirstKey( result.upload.warnings ), result ).promise();
- }
- return result;
- } );
+ api.uploadFromStash( filekey, $.extend( data, moreData ) );
}
return this.upload( file, { stash: true, filename: data.filename } ).then(
);
},
+ /**
+ * Finish an upload in the stash.
+ *
+ * @param {string} filekey
+ * @param {Object} data
+ */
+ uploadFromStash: function ( filekey, data ) {
+ data.filekey = filekey;
+ data.action = 'upload';
+ data.format = 'json';
+
+ if ( !data.filename ) {
+ throw new Error( 'Filename not included in file data.' );
+ }
+
+ return this.postWithEditToken( data ).then( function ( result ) {
+ if ( result.upload && result.upload.warnings ) {
+ return $.Deferred().reject( getFirstKey( result.upload.warnings ), result ).promise();
+ }
+ return result;
+ } );
+ },
+
needToken: function () {
return true;
}
* @constructor
* @param {Object} config Configuration options
* @cfg {jQuery} [$overlay] Overlay to use for widgets in the booklet
+ * @cfg {string} [filekey] Sets the stashed file to finish uploading. Overrides most of the file selection process, and fetches a thumbnail from the server.
*/
mw.Upload.BookletLayout = function ( config ) {
// Parent constructor
this.$overlay = config.$overlay;
+ this.filekey = config.filekey;
+
this.renderUploadForm();
this.renderInfoForm();
this.renderInsertForm();
this.clear();
this.upload = this.createUpload();
+
this.setPage( 'upload' );
+ if ( this.filekey ) {
+ this.setFilekey( this.filekey );
+ }
+
return this.upload.getApi().then(
function ( api ) {
// If the user can't upload anything, don't give them the option to.
layout = this,
file = this.getFile();
- this.setFilename( file.name );
-
this.setPage( 'info' );
+ if ( this.filekey ) {
+ if ( file === null ) {
+ // Someone gonna get-a hurt real bad
+ throw new Error( 'filekey not passed into file select widget, which is impossible. Quitting while we\'re behind.' );
+ }
+
+ // Stashed file already uploaded.
+ deferred.resolve();
+ this.uploadPromise = deferred;
+ this.emit( 'fileUploaded' );
+ return deferred;
+ }
+
+ this.setFilename( file.name );
+
this.upload.setFile( file );
// The original file name might contain invalid characters, so use our sanitized one
this.upload.setFilename( this.getFilename() );
var fieldset,
layout = this;
- this.selectFileWidget = new OO.ui.SelectFileWidget( {
- showDropTarget: true
- } );
+ this.selectFileWidget = this.getFileWidget();
fieldset = new OO.ui.FieldsetLayout();
fieldset.addItems( [ this.selectFileWidget ] );
this.uploadForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
- // Validation
+ // Validation (if the SFW is for a stashed file, this never fires)
this.selectFileWidget.on( 'change', this.onUploadFormChange.bind( this ) );
this.selectFileWidget.on( 'change', function () {
return this.uploadForm;
};
+ /**
+ * Gets the widget for displaying or inputting the file to upload.
+ *
+ * @return {OO.ui.SelectFileWidget|mw.widgets.StashedFileWidget}
+ */
+ mw.Upload.BookletLayout.prototype.getFileWidget = function () {
+ if ( this.filekey ) {
+ return new mw.widgets.StashedFileWidget( {
+ filekey: this.filekey
+ } );
+ }
+
+ return new OO.ui.SelectFileWidget( {
+ showDropTarget: true
+ } );
+ };
+
/**
* Updates the file preview on the info form when a file is added.
*
this.selectFileWidget.setValue( file );
};
+ /**
+ * Sets the filekey of a file already stashed on the server
+ * as the target of this upload operation.
+ *
+ * @protected
+ * @param {string} filekey
+ */
+ mw.Upload.BookletLayout.prototype.setFilekey = function ( filekey ) {
+ this.upload.setFilekey( this.filekey );
+ this.selectFileWidget.setValue( filekey );
+
+ this.onUploadFormChange();
+ };
+
/**
* Clear the values of all fields
*
this.filename = filename;
};
+ /**
+ * Set the stashed file to finish uploading.
+ *
+ * @param {string} filekey
+ */
+ UP.setFilekey = function ( filekey ) {
+ var upload = this;
+
+ this.setState( Upload.State.STASHED );
+ this.stashPromise = $.Deferred().resolve( function ( data ) {
+ return upload.api.uploadFromStash( filekey, data );
+ } );
+ };
+
/**
* Sets the filename based on the filename as it was on the upload.
*/
* @file
* @ingroup Testing
*/
+use MediaWiki\MediaWikiServices;
/**
* @ingroup Testing
// "extra language links"
// see https://gerrit.wikimedia.org/r/111390
array_push( $wgExtraInterlanguageLinkPrefixes, 'mul' );
+
+ // Reset all services to be consistent with the new settings!
+ MediaWikiServices::resetGlobalInstance();
}
/**
$this->databaseSetupDone = true;
- # SqlBagOStuff broke when using temporary tables on r40209 (bug 15892).
- # It seems to have been fixed since (r55079?), but regressed at some point before r85701.
- # This works around it for now...
- ObjectCache::$instances[CACHE_DB] = new HashBagOStuff;
-
# CREATE TEMPORARY TABLE breaks if there is more than one server
if ( wfGetLB()->getServerCount() != 1 ) {
$this->useTemporaryTables = false;
$this->db->insert( 'site_stats',
[ 'ss_row_id' => 1, 'ss_images' => 2, 'ss_good_articles' => 1 ] );
- # Reinitialise the LocalisationCache to match the database state
- Language::getLocalisationCache()->unloadAll();
+ $bootstrapConfig = MediaWikiServices::getInstance()->getBootstrapConfig();
+ $configOverrides = new HashConfig();
- # Clear the message cache
- MessageCache::singleton()->clear();
+ # SqlBagOStuff broke when using temporary tables on r40209 (bug 15892).
+ # It seems to have been fixed since (r55079?), but regressed at some point before r85701.
+ # This works around it for now...
+ $objectCaches = [
+ CACHE_DB => [ 'class' => 'HashBagOStuff' ],
+ ] + $bootstrapConfig->get( 'ObjectCaches' );
+
+ $configOverrides->set( 'ObjectCaches', $objectCaches );
+
+ // Reset all services to be consistent with the new settings!
+ MediaWikiServices::resetGlobalInstance(
+ new MultiConfig( [ $configOverrides, $bootstrapConfig ] )
+ );
// Remember to update newParserTests.php after changing the below
// (and it uses a slightly different syntax just for teh lulz)
* after each test runs.
*/
private function teardownGlobals() {
- RepoGroup::destroySingleton();
- FileBackendGroup::destroySingleton();
- LockManagerGroup::destroySingletons();
- LinkCache::singleton()->clear();
- MWTidy::destroySingleton();
+ MediaWikiServices::resetGlobalInstance();
foreach ( $this->savedGlobals as $var => $val ) {
$GLOBALS[$var] = $val;
use MediaWiki\Logger\LegacySpi;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\Logger\MonologSpi;
+use MediaWiki\MediaWikiServices;
use Psr\Log\LoggerInterface;
/**
* @since 1.18
*/
abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
+
+ /**
+ * The service locator created by prepareServices(). This service locator will
+ * be restored after each test. Tests that pollute the global service locator
+ * instance should use overrideMwServices() to isolate the test.
+ *
+ * @var MediaWikiServices|null
+ */
+ private static $serviceLocator = null;
+
/**
* $called tracks whether the setUp and tearDown method has been called.
* class extending MediaWikiTestCase usually override setUp and tearDown
}
}
- public function run( PHPUnit_Framework_TestResult $result = null ) {
+ public static function setUpBeforeClass() {
+ parent::setUpBeforeClass();
+
+ // NOTE: Usually, PHPUnitMaintClass::finalSetup already called this,
+ // but let's make doubly sure.
+ self::prepareServices( new GlobalVarConfig() );
+ }
+
+ /**
+ * Prepare service configuration for unit testing.
+ *
+ * This calls MediaWikiServices::resetGlobalInstance() to allow some critical services
+ * to be overridden for testing.
+ *
+ * prepareServices() only needs to be called once, but should be called as early as possible,
+ * before any class has a chance to grab a reference to any of the global services
+ * instances that get discarded by prepareServices(). Only the first call has any effect,
+ * later calls are ignored.
+ *
+ * @note This is called by PHPUnitMaintClass::finalSetup.
+ *
+ * @see MediaWikiServices::resetGlobalInstance()
+ *
+ * @param Config $bootstrapConfig The bootstrap config to use with the new
+ * MediaWikiServices. Only used for the first call to this method.
+ */
+ public static function prepareServices( Config $bootstrapConfig ) {
+ static $servicesPrepared = false;
+
+ if ( $servicesPrepared ) {
+ return;
+ } else {
+ $servicesPrepared = true;
+ }
+
+ self::resetGlobalServices( $bootstrapConfig );
+ }
+
+ /**
+ * Reset global services, and install testing environment.
+ * This is the testing equivalent of MediaWikiServices::resetGlobalInstance().
+ * This should only be used to set up the testing environment, not when
+ * runnnig unit tests. Use overrideMwServices() for that.
+ *
+ * @see MediaWikiServices::resetGlobalInstance()
+ * @see prepareServices()
+ * @see overrideMwServices()
+ *
+ * @param Config|null $bootstrapConfig The bootstrap config to use with the new
+ * MediaWikiServices.
+ */
+ protected static function resetGlobalServices( Config $bootstrapConfig = null ) {
+ $oldServices = MediaWikiServices::getInstance();
+ $oldConfigFactory = $oldServices->getConfigFactory();
+
+ $testConfig = self::makeTestConfig( $bootstrapConfig );
+
+ MediaWikiServices::resetGlobalInstance( $testConfig );
+
+ self::$serviceLocator = MediaWikiServices::getInstance();
+ self::installTestServices(
+ $oldConfigFactory,
+ self::$serviceLocator
+ );
+ }
+
+ /**
+ * Create a config suitable for testing, based on a base config, default overrides,
+ * and custom overrdies.
+ *
+ * @param Config|null $baseConfig
+ * @param Config|null $customOverrides
+ *
+ * @return Config
+ */
+ private static function makeTestConfig(
+ Config $baseConfig = null,
+ Config $customOverrides = null
+ ) {
+ $defaultOverrides = new HashConfig();
+
+ if ( !$baseConfig ) {
+ $baseConfig = MediaWikiServices::getInstance()->getBootstrapConfig();
+ }
+
/* Some functions require some kind of caching, and will end up using the db,
* which we can't allow, as that would open a new connection for mysql.
* Replace with a HashBag. They would not be going to persist anyway.
*/
- ObjectCache::$instances[CACHE_DB] = new HashBagOStuff;
+ $hashCache = [ 'class' => 'HashBagOStuff' ];
+ $objectCaches = [
+ CACHE_DB => $hashCache,
+ CACHE_ACCEL => $hashCache,
+ CACHE_MEMCACHED => $hashCache,
+ 'apc' => $hashCache,
+ 'xcache' => $hashCache,
+ 'wincache' => $hashCache,
+ ] + $baseConfig->get( 'ObjectCaches' );
+
+ $defaultOverrides->set( 'ObjectCaches', $objectCaches );
+ $defaultOverrides->set( 'MainCacheType', CACHE_NONE );
+
+ $testConfig = $customOverrides
+ ? new MultiConfig( [ $customOverrides, $defaultOverrides, $baseConfig ] )
+ : new MultiConfig( [ $defaultOverrides, $baseConfig ] );
+
+ return $testConfig;
+ }
- // Sandbox APC by replacing with in-process hash instead.
- // Ensures values are removed between tests.
- ObjectCache::$instances['apc'] =
- ObjectCache::$instances['xcache'] =
- ObjectCache::$instances['wincache'] = new HashBagOStuff;
+ /**
+ * @param ConfigFactory $oldConfigFactory
+ * @param MediaWikiServices $newServices
+ *
+ * @throws MWException
+ */
+ private static function installTestServices(
+ ConfigFactory $oldConfigFactory,
+ MediaWikiServices $newServices
+ ) {
+ // Use bootstrap config for all configuration.
+ // This allows config overrides via global variables to take effect.
+ $bootstrapConfig = $newServices->getBootstrapConfig();
+ $newServices->resetServiceForTesting( 'ConfigFactory' );
+ $newServices->redefineService(
+ 'ConfigFactory',
+ self::makeTestConfigFactoryInstantiator(
+ $oldConfigFactory,
+ [ 'main' => $bootstrapConfig ]
+ )
+ );
+ }
+
+ /**
+ * @param ConfigFactory $oldFactory
+ * @param Config[] $config
+ *
+ * @return Closure
+ */
+ private static function makeTestConfigFactoryInstantiator(
+ ConfigFactory $oldFactory,
+ array $configurations
+ ) {
+ return function( MediaWikiServices $services ) use ( $oldFactory, $configurations ) {
+ $factory = new ConfigFactory();
+
+ // clone configurations from $oldFactory that are not overwritten by $configurations
+ $namesToClone = array_diff(
+ $oldFactory->getConfigNames(),
+ array_keys( $configurations )
+ );
+
+ foreach ( $namesToClone as $name ) {
+ $factory->register( $name, $oldFactory->makeConfig( $name ) );
+ }
+
+ foreach ( $configurations as $name => $config ) {
+ $factory->register( $name, $config );
+ }
+
+ return $factory;
+ };
+ }
+
+ /**
+ * Resets some well known services that typically have state that may interfere with unit tests.
+ * This is a lightweight alternative to resetGlobalServices().
+ *
+ * @note There is no guarantee that no references remain to stale service instances destroyed
+ * by a call to doLightweightServiceReset().
+ *
+ * @throws MWException if called outside of PHPUnit tests.
+ *
+ * @see resetGlobalServices()
+ */
+ private function doLightweightServiceReset() {
+ global $wgRequest;
+
+ $services = MediaWikiServices::getInstance();
+
+ JobQueueGroup::destroySingletons();
+ ObjectCache::clear();
+ FileBackendGroup::destroySingleton();
+
+ // TODO: move global state into MediaWikiServices
+ RequestContext::resetMain();
+ MediaHandler::resetCache();
+ if ( session_id() !== '' ) {
+ session_write_close();
+ session_id( '' );
+ }
+
+ $wgRequest = new FauxRequest();
+ MediaWiki\Session\SessionManager::resetCache();
+ }
+
+ public function run( PHPUnit_Framework_TestResult $result = null ) {
+ // Reset all caches between tests.
+ $this->doLightweightServiceReset();
$needsResetDB = false;
}
$this->mwGlobals = [];
$this->restoreLoggers();
+
+ if ( self::$serviceLocator && MediaWikiServices::getInstance() !== self::$serviceLocator ) {
+ MediaWikiServices::forceGlobalInstance( self::$serviceLocator );
+ }
+
+ // TODO: move global state into MediaWikiServices
RequestContext::resetMain();
MediaHandler::resetCache();
if ( session_id() !== '' ) {
);
}
+ /**
+ * Sets a service, maintaining a stashed version of the previous service to be
+ * restored in tearDown
+ *
+ * @param string $name
+ * @param object $object
+ */
+ protected function setService( $name, $object ) {
+ // If we did not yet override the service locator, so so now.
+ if ( MediaWikiServices::getInstance() === self::$serviceLocator ) {
+ $this->overrideMwServices();
+ }
+
+ MediaWikiServices::getInstance()->disableService( $name );
+ MediaWikiServices::getInstance()->redefineService(
+ $name,
+ function () use ( $object ) {
+ return $object;
+ }
+ );
+ }
+
/**
* Sets a global, maintaining a stashed version of the previous global to be
* restored in tearDown
* @param mixed $value Value to set the global to (ignored
* if an array is given as first argument).
*
+ * @note To allow changes to global variables to take effect on global service instances,
+ * call overrideMwServices().
+ *
* @since 1.21
*/
protected function setMwGlobals( $pairs, $value = null ) {
* @param array|string $globalKeys Key to the global variable, or an array of keys.
*
* @throws Exception When trying to stash an unset global
+ *
+ * @note To allow changes to global variables to take effect on global service instances,
+ * call overrideMwServices().
+ *
* @since 1.23
*/
protected function stashMwGlobals( $globalKeys ) {
*
* @throws MWException If the designated global is not an array.
*
+ * @note To allow changes to global variables to take effect on global service instances,
+ * call overrideMwServices().
+ *
* @since 1.21
*/
protected function mergeMwGlobalArrayValue( $name, $values ) {
$this->setMwGlobals( $name, $merged );
}
+ /**
+ * Stashes the global instance of MediaWikiServices, and installs a new one,
+ * allowing test cases to override settings and services.
+ * The previous instance of MediaWikiServices will be restored on tearDown.
+ *
+ * @since 1.27
+ *
+ * @param Config $configOverrides Configuration overrides for the new MediaWikiServices instance.
+ * @param callable[] $services An associative array of services to re-define. Keys are service
+ * names, values are callables.
+ *
+ * @return MediaWikiServices
+ * @throws MWException
+ */
+ protected function overrideMwServices( Config $configOverrides = null, array $services = [] ) {
+ if ( !$configOverrides ) {
+ $configOverrides = new HashConfig();
+ }
+
+ $oldInstance = MediaWikiServices::getInstance();
+ $oldConfigFactory = $oldInstance->getConfigFactory();
+
+ $testConfig = self::makeTestConfig( null, $configOverrides );
+ $newInstance = new MediaWikiServices( $testConfig );
+
+ // Load the default wiring from the specified files.
+ // NOTE: this logic mirrors the logic in MediaWikiServices::newInstance.
+ $wiringFiles = $testConfig->get( 'ServiceWiringFiles' );
+ $newInstance->loadWiringFiles( $wiringFiles );
+
+ // Provide a traditional hook point to allow extensions to configure services.
+ Hooks::run( 'MediaWikiServices', [ $newInstance ] );
+
+ foreach ( $services as $name => $callback ) {
+ $newInstance->redefineService( $name, $callback );
+ }
+
+ self::installTestServices(
+ $oldConfigFactory,
+ $newInstance
+ );
+ MediaWikiServices::forceGlobalInstance( $newInstance );
+
+ return $newInstance;
+ }
+
/**
* @since 1.27
* @param string|Language $lang
* @param LoggerInterface $logger
*/
protected function setLogger( $channel, LoggerInterface $logger ) {
+ // TODO: Once loggers are managed by MediaWikiServices, use
+ // overrideMwServices() to set loggers.
+
$provider = LoggerFactory::getProvider();
$wrappedProvider = TestingAccessWrapper::newFromObject( $provider );
$singletons = $wrappedProvider->singletons;
$user = User::newFromName( 'UTSysop' );
$comment = __METHOD__ . ': Sample page for unit test.';
+ // Avoid memory leak...?
+ // LinkCache::singleton()->clear();
+ // Maybe. But doing this absolutely breaks $title->isRedirect() when called during unit tests....
+
$page = WikiPage::factory( $title );
$page->doEditContent( ContentHandler::makeContent( $text, $title ), $comment, 0, false, $user );
return;
}
+ // TODO: the below should be re-written as soon as LBFactory, LoadBalancer,
+ // and DatabaseBase no longer use global state.
+
self::$dbSetup = true;
if ( !self::setupDatabaseWithTestPrefix( $db, $prefix ) ) {
<?php
use MediaWiki\MediaWikiServices;
+use MediaWiki\Services\ServiceDisabledException;
/**
* @covers MediaWiki\MediaWikiServices
*/
class MediaWikiServicesTest extends PHPUnit_Framework_TestCase {
+ /**
+ * @return Config
+ */
+ private function newTestConfig() {
+ $globalConfig = new GlobalVarConfig();
+
+ $testConfig = new HashConfig();
+ $testConfig->set( 'ServiceWiringFiles', $globalConfig->get( 'ServiceWiringFiles' ) );
+ $testConfig->set( 'ConfigRegistry', $globalConfig->get( 'ConfigRegistry' ) );
+
+ return $testConfig;
+ }
+
+ /**
+ * @return MediaWikiServices
+ */
+ private function newMediaWikiServices( Config $config = null ) {
+ if ( $config === null ) {
+ $config = $this->newTestConfig();
+ }
+
+ $instance = new MediaWikiServices( $config );
+
+ // Load the default wiring from the specified files.
+ $wiringFiles = $config->get( 'ServiceWiringFiles' );
+ $instance->loadWiringFiles( $wiringFiles );
+
+ return $instance;
+ }
+
public function testGetInstance() {
$services = MediaWikiServices::getInstance();
$this->assertInstanceOf( 'MediaWiki\\MediaWikiServices', $services );
}
+ public function testForceGlobalInstance() {
+ $newServices = $this->newMediaWikiServices();
+ $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
+
+ $this->assertInstanceOf( 'MediaWiki\\MediaWikiServices', $oldServices );
+ $this->assertNotSame( $oldServices, $newServices );
+
+ $theServices = MediaWikiServices::getInstance();
+ $this->assertSame( $theServices, $newServices );
+
+ MediaWikiServices::forceGlobalInstance( $oldServices );
+
+ $theServices = MediaWikiServices::getInstance();
+ $this->assertSame( $theServices, $oldServices );
+ }
+
+ public function testResetGlobalInstance() {
+ $newServices = $this->newMediaWikiServices();
+ $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
+
+ MediaWikiServices::resetGlobalInstance( $this->newTestConfig() );
+ $theServices = MediaWikiServices::getInstance();
+
+ $this->assertNotSame( $theServices, $newServices );
+ $this->assertNotSame( $theServices, $oldServices );
+
+ MediaWikiServices::forceGlobalInstance( $oldServices );
+ }
+
+ public function testDisableStorageBackend() {
+ $newServices = $this->newMediaWikiServices();
+ $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
+
+ $lbFactory = $this->getMockBuilder( 'LBFactorySimple' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $lbFactory->expects( $this->once() )
+ ->method( 'destroy' );
+
+ $newServices->redefineService(
+ 'DBLoadBalancerFactory',
+ function() use ( $lbFactory ) {
+ return $lbFactory;
+ }
+ );
+
+ // force the service to become active, so we can check that it does get destroyed
+ $newServices->getService( 'DBLoadBalancerFactory' );
+
+ MediaWikiServices::disableStorageBackend(); // should destroy DBLoadBalancerFactory
+
+ try {
+ MediaWikiServices::getInstance()->getService( 'DBLoadBalancerFactory' );
+ $this->fail( 'DBLoadBalancerFactory shoudl have been disabled' );
+ }
+ catch ( ServiceDisabledException $ex ) {
+ // ok, as expected
+ }
+ catch ( Throwable $ex ) {
+ $this->fail( 'ServiceDisabledException expected, caught ' . get_class( $ex ) );
+ }
+
+ MediaWikiServices::forceGlobalInstance( $oldServices );
+ }
+
+ public function testResetChildProcessServices() {
+ $newServices = $this->newMediaWikiServices();
+ $oldServices = MediaWikiServices::forceGlobalInstance( $newServices );
+
+ $lbFactory = $this->getMockBuilder( 'LBFactorySimple' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $lbFactory->expects( $this->once() )
+ ->method( 'destroy' );
+
+ $newServices->redefineService(
+ 'DBLoadBalancerFactory',
+ function() use ( $lbFactory ) {
+ return $lbFactory;
+ }
+ );
+
+ // force the service to become active, so we can check that it does get destroyed
+ $oldLBFactory = $newServices->getService( 'DBLoadBalancerFactory' );
+
+ MediaWikiServices::resetChildProcessServices();
+ $finalServices = MediaWikiServices::getInstance();
+
+ $newLBFactory = $finalServices->getService( 'DBLoadBalancerFactory' );
+
+ $this->assertNotSame( $oldLBFactory, $newLBFactory );
+
+ MediaWikiServices::forceGlobalInstance( $oldServices );
+ }
+
+ public function testResetServiceForTesting() {
+ $services = $this->newMediaWikiServices();
+ $serviceCounter = 0;
+
+ $services->defineService(
+ 'Test',
+ function() use ( &$serviceCounter ) {
+ $serviceCounter++;
+ $service = $this->getMock( 'MediaWiki\Services\DestructibleService' );
+ $service->expects( $this->once() )->method( 'destroy' );
+ return $service;
+ }
+ );
+
+ // This should do nothing. In particular, it should not create a service instance.
+ $services->resetServiceForTesting( 'Test' );
+ $this->assertEquals( 0, $serviceCounter, 'No service instance should be created yet.' );
+
+ $oldInstance = $services->getService( 'Test' );
+ $this->assertEquals( 1, $serviceCounter, 'A service instance should exit now.' );
+
+ // The old instance should be detached, and destroy() called.
+ $services->resetServiceForTesting( 'Test' );
+ $newInstance = $services->getService( 'Test' );
+
+ $this->assertNotSame( $oldInstance, $newInstance );
+
+ // Satisfy the expectation that destroy() is called also for the second service instance.
+ $newInstance->destroy();
+ }
+
+ public function testResetServiceForTesting_noDestroy() {
+ $services = $this->newMediaWikiServices();
+
+ $services->defineService(
+ 'Test',
+ function() {
+ $service = $this->getMock( 'MediaWiki\Services\DestructibleService' );
+ $service->expects( $this->never() )->method( 'destroy' );
+ return $service;
+ }
+ );
+
+ $oldInstance = $services->getService( 'Test' );
+
+ // The old instance should be detached, but destroy() not called.
+ $services->resetServiceForTesting( 'Test', false );
+ $newInstance = $services->getService( 'Test' );
+
+ $this->assertNotSame( $oldInstance, $newInstance );
+ }
+
public function provideGetters() {
- // NOTE: This should list all service getters defined in MediaWikiServices.
- // NOTE: For every test case defined here there should be a corresponding
- // test case defined in provideGetService().
- return [
- 'BootstrapConfig' => [ 'getBootstrapConfig', Config::class ],
- 'ConfigFactory' => [ 'getConfigFactory', ConfigFactory::class ],
- 'MainConfig' => [ 'getMainConfig', Config::class ],
- 'SiteStore' => [ 'getSiteStore', SiteStore::class ],
- 'SiteLookup' => [ 'getSiteLookup', SiteLookup::class ],
- ];
+ $getServiceCases = $this->provideGetService();
+ $getterCases = [];
+
+ // All getters should be named just like the service, with "get" added.
+ foreach ( $getServiceCases as $name => $case ) {
+ $getterCases[$name] = [
+ 'get' . $case[0],
+ $case[1]
+ ];
+ }
+
+ return $getterCases;
}
/**
'MainConfig' => [ 'MainConfig', Config::class ],
'SiteStore' => [ 'SiteStore', SiteStore::class ],
'SiteLookup' => [ 'SiteLookup', SiteLookup::class ],
+ 'DBLoadBalancerFactory' => [ 'DBLoadBalancerFactory', 'LBFactory' ],
+ 'DBLoadBalancer' => [ 'DBLoadBalancer', 'LoadBalancer' ],
+ 'WatchedItemStore' => [ 'WatchedItemStore', WatchedItemStore::class ],
];
}
* @covers Message::__construct
* @dataProvider provideConstructor
*/
- public function testConstructor( $expectedLang, $key, $params, $language ) {
+ public function testConstructor( Language $expectedLang, $key, $params, $language ) {
$message = new Message( $key, $params, $language );
$this->assertEquals( $key, $message->getKey() );
$this->assertEquals( $params, $message->getParams() );
- $this->assertEquals( $expectedLang, $message->getLanguage() );
+ $this->assertEquals( $expectedLang->getCode(), $message->getLanguage()->getCode() );
$messageSpecifier = $this->getMockForAbstractClass( 'MessageSpecifier' );
$messageSpecifier->expects( $this->any() )
$this->assertEquals( $key, $message->getKey() );
$this->assertEquals( $params, $message->getParams() );
- $this->assertEquals( $expectedLang, $message->getLanguage() );
+ $this->assertEquals( $expectedLang->getCode(), $message->getLanguage()->getCode() );
}
public static function provideConstructor() {
$name = 'TestService92834576';
- $this->setExpectedException( 'InvalidArgumentException' );
+ $this->setExpectedException( 'MediaWiki\Services\NoSuchServiceException' );
$services->getService( $name );
}
+ public function testPeekService() {
+ $services = $this->newServiceContainer();
+
+ $services->defineService(
+ 'Foo',
+ function() {
+ return new stdClass();
+ }
+ );
+
+ $services->defineService(
+ 'Bar',
+ function() {
+ return new stdClass();
+ }
+ );
+
+ // trigger instantiation of Foo
+ $services->getService( 'Foo' );
+
+ $this->assertInternalType(
+ 'object',
+ $services->peekService( 'Foo' ),
+ 'Peek should return the service object if it had been accessed before.'
+ );
+
+ $this->assertNull(
+ $services->peekService( 'Bar' ),
+ 'Peek should return null if the service was never accessed.'
+ );
+ }
+
+ public function testPeekService_fail_unknown() {
+ $services = $this->newServiceContainer();
+
+ $name = 'TestService92834576';
+
+ $this->setExpectedException( 'MediaWiki\Services\NoSuchServiceException' );
+
+ $services->peekService( $name );
+ }
+
public function testDefineService() {
$services = $this->newServiceContainer();
return $theService;
} );
- $this->setExpectedException( 'RuntimeException' );
+ $this->setExpectedException( 'MediaWiki\Services\ServiceAlreadyDefinedException' );
$services->defineService( $name, function() use ( $theService ) {
return $theService;
];
// loading the same file twice should fail, because
- $this->setExpectedException( 'RuntimeException' );
+ $this->setExpectedException( 'MediaWiki\Services\ServiceAlreadyDefinedException' );
$services->loadWiringFiles( $wiringFiles );
}
$theService = new stdClass();
$name = 'TestService92834576';
- $this->setExpectedException( 'RuntimeException' );
+ $this->setExpectedException( 'MediaWiki\Services\NoSuchServiceException' );
$services->redefineService( $name, function() use ( $theService ) {
return $theService;
// create the service, so it can no longer be redefined
$services->getService( $name );
- $this->setExpectedException( 'RuntimeException' );
+ $this->setExpectedException( 'MediaWiki\Services\CannotReplaceActiveServiceException' );
+
+ $services->redefineService( $name, function() use ( $theService ) {
+ return $theService;
+ } );
+ }
+
+ public function testDisableService() {
+ $services = $this->newServiceContainer( [ 'Foo' ] );
+
+ $destructible = $this->getMock( 'MediaWiki\Services\DestructibleService' );
+ $destructible->expects( $this->once() )
+ ->method( 'destroy' );
+
+ $services->defineService( 'Foo', function() use ( $destructible ) {
+ return $destructible;
+ } );
+ $services->defineService( 'Bar', function() {
+ return new stdClass();
+ } );
+ $services->defineService( 'Qux', function() {
+ return new stdClass();
+ } );
+
+ // instantiate Foo and Bar services
+ $services->getService( 'Foo' );
+ $services->getService( 'Bar' );
+
+ // disable service, should call destroy() once.
+ $services->disableService( 'Foo' );
+
+ // disabled service should still be listed
+ $this->assertContains( 'Foo', $services->getServiceNames() );
+
+ // getting other services should still work
+ $services->getService( 'Bar' );
+
+ // disable non-destructible service, and not-yet-instantiated service
+ $services->disableService( 'Bar' );
+ $services->disableService( 'Qux' );
+
+ $this->assertNull( $services->peekService( 'Bar' ) );
+ $this->assertNull( $services->peekService( 'Qux' ) );
+
+ // disabled service should still be listed
+ $this->assertContains( 'Bar', $services->getServiceNames() );
+ $this->assertContains( 'Qux', $services->getServiceNames() );
+
+ // re-enable Bar service
+ $services->redefineService( 'Bar', function() {
+ return new stdClass();
+ } );
+
+ $services->getService( 'Bar' );
+
+ $this->setExpectedException( 'MediaWiki\Services\ServiceDisabledException' );
+ $services->getService( 'Qux' );
+ }
+
+ public function testDisableService_fail_undefined() {
+ $services = $this->newServiceContainer();
+
+ $theService = new stdClass();
+ $name = 'TestService92834576';
+
+ $this->setExpectedException( 'MediaWiki\Services\NoSuchServiceException' );
$services->redefineService( $name, function() use ( $theService ) {
return $theService;
} );
}
+ public function testDestroy() {
+ $services = $this->newServiceContainer();
+
+ $destructible = $this->getMock( 'MediaWiki\Services\DestructibleService' );
+ $destructible->expects( $this->once() )
+ ->method( 'destroy' );
+
+ $services->defineService( 'Foo', function() use ( $destructible ) {
+ return $destructible;
+ } );
+
+ $services->defineService( 'Bar', function() {
+ return new stdClass();
+ } );
+
+ // create the service
+ $services->getService( 'Foo' );
+
+ // destroy the container
+ $services->destroy();
+
+ $this->setExpectedException( 'MediaWiki\Services\ContainerDisabledException' );
+ $services->getService( 'Bar' );
+ }
+
}
<?php
-use Liuggio\StatsdClient\Factory\StatsdDataFactory;
/**
* @author Addshore
*
* @covers WatchedItemStore
*/
-class WatchedItemStoreUnitTest extends PHPUnit_Framework_TestCase {
+class WatchedItemStoreUnitTest extends MediaWikiTestCase {
/**
* @return PHPUnit_Framework_MockObject_MockObject|IDatabase
$this->assertSame( $instanceOne, $instanceTwo );
}
- public function testOverrideDefaultInstance() {
- $instance = WatchedItemStore::getDefaultInstance();
- $scopedOverride = $instance->overrideDefaultInstance( null );
-
- $this->assertNotSame( $instance, WatchedItemStore::getDefaultInstance() );
-
- unset( $scopedOverride );
-
- $this->assertSame( $instance, WatchedItemStore::getDefaultInstance() );
- }
-
public function testCountWatchedItems() {
$user = $this->getMockNonAnonUserWithId( 1 );
*
* @covers WatchedItem
*/
-class WatchedItemUnitTest extends PHPUnit_Framework_TestCase {
+class WatchedItemUnitTest extends MediaWikiTestCase {
+
+ /**
+ * @param int $id
+ *
+ * @return PHPUnit_Framework_MockObject_MockObject|User
+ */
+ private function getMockUser( $id ) {
+ $user = $this->getMock( User::class );
+ $user->expects( $this->any() )
+ ->method( 'getId' )
+ ->will( $this->returnValue( $id ) );
+ $user->expects( $this->any() )
+ ->method( 'isAllowed' )
+ ->will( $this->returnValue( true ) );
+ return $user;
+ }
public function provideUserTitleTimestamp() {
+ $user = $this->getMockUser( 111 );
return [
- [ User::newFromId( 111 ), Title::newFromText( 'SomeTitle' ), null ],
- [ User::newFromId( 111 ), Title::newFromText( 'SomeTitle' ), '20150101010101' ],
- [ User::newFromId( 111 ), new TitleValue( 0, 'TVTitle', 'frag' ), '20150101010101' ],
+ [ $user, Title::newFromText( 'SomeTitle' ), null ],
+ [ $user, Title::newFromText( 'SomeTitle' ), '20150101010101' ],
+ [ $user, new TitleValue( 0, 'TVTitle', 'frag' ), '20150101010101' ],
];
}
->method( 'loadWatchedItem' )
->with( $user, $linkTarget )
->will( $this->returnValue( new WatchedItem( $user, $linkTarget, $timestamp ) ) );
- $scopedOverride = WatchedItemStore::overrideDefaultInstance( $store );
+ $this->setService( 'WatchedItemStore', $store );
$item = WatchedItem::fromUserTitle( $user, $linkTarget, User::IGNORE_USER_RIGHTS );
$this->assertEquals( $user, $item->getUser() );
$this->assertEquals( $linkTarget, $item->getLinkTarget() );
$this->assertEquals( $timestamp, $item->getNotificationTimestamp() );
-
- ScopedCallback::consume( $scopedOverride );
}
/**
return true;
}
) );
- $scopedOverride = WatchedItemStore::overrideDefaultInstance( $store );
+ $this->setService( 'WatchedItemStore', $store );
$item = new WatchedItem( $user, $linkTarget, $timestamp );
$item->resetNotificationTimestamp( $force, $oldid );
-
- ScopedCallback::consume( $scopedOverride );
}
public function testAddWatch() {
$store->expects( $this->once() )
->method( 'duplicateAllAssociatedEntries' )
->with( $oldTitle, $newTitle );
- $scopedOverride = WatchedItemStore::overrideDefaultInstance( $store );
+ $this->setService( 'WatchedItemStore', $store );
WatchedItem::duplicateEntries( $oldTitle, $newTitle );
-
- ScopedCallback::consume( $scopedOverride );
}
public function testBatchAddWatch() {
- $itemOne = new WatchedItem( User::newFromId( 1 ), new TitleValue( 0, 'Title1' ), null );
+ $itemOne = new WatchedItem( $this->getMockUser( 1 ), new TitleValue( 0, 'Title1' ), null );
$itemTwo = new WatchedItem(
- User::newFromId( 3 ),
+ $this->getMockUser( 3 ),
Title::newFromText( 'Title2' ),
'20150101010101'
);
$itemTwo->getTitle()->getTalkPage(),
]
);
- $scopedOverride = WatchedItemStore::overrideDefaultInstance( $store );
+ $this->setService( 'WatchedItemStore', $store );
WatchedItem::batchAddWatch( [ $itemOne, $itemTwo ] );
-
- ScopedCallback::consume( $scopedOverride );
}
}
public function testRegister() {
$factory = new ConfigFactory();
$factory->register( 'unittest', 'GlobalVarConfig::newInstance' );
- $this->assertTrue( true ); // No exception thrown
+ $this->assertInstanceOf( GlobalVarConfig::class, $factory->makeConfig( 'unittest' ) );
+ }
+
+ /**
+ * @covers ConfigFactory::register
+ */
+ public function testRegisterInvalid() {
+ $factory = new ConfigFactory();
$this->setExpectedException( 'InvalidArgumentException' );
$factory->register( 'invalid', 'Invalid callback' );
}
+ /**
+ * @covers ConfigFactory::register
+ */
+ public function testRegisterInstance() {
+ $config = GlobalVarConfig::newInstance();
+ $factory = new ConfigFactory();
+ $factory->register( 'unittest', $config );
+ $this->assertSame( $config, $factory->makeConfig( 'unittest' ) );
+ }
+
+ /**
+ * @covers ConfigFactory::register
+ */
+ public function testRegisterAgain() {
+ $factory = new ConfigFactory();
+ $factory->register( 'unittest', 'GlobalVarConfig::newInstance' );
+ $config1 = $factory->makeConfig( 'unittest' );
+
+ $factory->register( 'unittest', 'GlobalVarConfig::newInstance' );
+ $config2 = $factory->makeConfig( 'unittest' );
+
+ $this->assertNotSame( $config1, $config2 );
+ }
+
+ /**
+ * @covers ConfigFactory::register
+ */
+ public function testGetConfigNames() {
+ $factory = new ConfigFactory();
+ $factory->register( 'foo', 'GlobalVarConfig::newInstance' );
+ $factory->register( 'bar', new HashConfig() );
+
+ $this->assertEquals( [ 'foo', 'bar' ], $factory->getConfigNames() );
+ }
+
/**
* @covers ConfigFactory::makeConfig
*/
public function testMakeConfig() {
$factory = new ConfigFactory();
$factory->register( 'unittest', 'GlobalVarConfig::newInstance' );
+
+ $conf = $factory->makeConfig( 'unittest' );
+ $this->assertInstanceOf( 'Config', $conf );
+ $this->assertSame( $conf, $factory->makeConfig( 'unittest' ) );
+ }
+
+ /**
+ * @covers ConfigFactory::makeConfig
+ */
+ public function testMakeConfigFallback() {
+ $factory = new ConfigFactory();
+ $factory->register( '*', 'GlobalVarConfig::newInstance' );
$conf = $factory->makeConfig( 'unittest' );
$this->assertInstanceOf( 'Config', $conf );
}
* @covers ConfigFactory::getDefaultInstance
*/
public function testGetDefaultInstance() {
+ // NOTE: the global config factory returned here has been overwritten
+ // for operation in test mode. It may not reflect LocalSettings.
$factory = ConfigFactory::getDefaultInstance();
$this->assertInstanceOf( 'Config', $factory->makeConfig( 'main' ) );
-
- $this->setExpectedException( 'ConfigException' );
- $factory->makeConfig( 'xyzzy' );
}
+
}
// may break testing against floating point values
// treated with PHP's serialize()
ini_set( 'serialize_precision', 17 );
+
+ // TODO: we should call MediaWikiTestCase::prepareServices( new GlobalVarConfig() ) here.
+ // But PHPUnit may not be loaded yet, so we have to wait until just
+ // before PHPUnit_TextUI_Command::main() is executed at the end of this file.
}
public function execute() {
'Using HHVM ' . HHVM_VERSION . ' (' . PHP_VERSION . ")\n" :
'Using PHP ' . PHP_VERSION . "\n";
+// Prepare global services for unit tests.
+// FIXME: this should be done in the finalSetup() method,
+// but PHPUnit may not have been loaded at that point.
+MediaWikiTestCase::prepareServices( new GlobalVarConfig() );
+
$wgPhpUnitClass::main();